2016-04-29 80 views
0

我正在嘗試創建一個SQL查詢,顯示所有未獲得憑證的採購訂單的列表。在我們目前的系統中,檢查採購訂單是否已經獲得授權,採購員工的成員點擊進入採購訂單,然後點擊一個標籤,在那裏顯示類似於以下內容的數據。找到未授權的採購訂單

這是Vouchered PO的示例。 AP購物線憑證購買。

enter image description here

的unvouchered PO是這樣的。您可以看到它缺少AP Purchase的行條目,將其標記爲Vouchered。 enter image description here

如果我想重新對給據PO我的代碼是這樣的結果:

select 
imhstry_dte_effctve as DateEffective, 
imhstry_srce_jrnl as SourceJournal, 
prchseordr_id as 'PO ID', 
sum(imhstry_qntty_ordrd) as QuantityOrdered, 
sum(imhstry_qntty_rcvd) as QuantityReceived, 
sum(imhstry_qntty_invcd_ap) as Vouchered 
from imhstry 
left join prchseordr on imhstry.imhstry_ordr_id = prchseordr.prchseordr_id 
Where prchseordr_id = '1234' 
group by 
imhstry.imhstry_itm_dscrptn, 
imhstry.imhstry_dte_effctve, 
imhstry.imhstry_srce_jrnl, 
prchseordr.prchseordr_id 

我想要做的就是創建一個顯示所有采購的簡單列表查詢目前在我們系統中的訂單沒有被授權,並且如果可能的話,所有尚未被充分授權的訂單。我有一種感覺,這是非常直接的,但我卡住了,想不出如何解決這個問題。任何幫助深表感謝。

請讓我知道如果這不明確或需要更多的信息。

+0

imhstry和prchseordr的表定義將幫助很多,即使您試圖解釋您的問題良好ddl和預期的結果更清晰,也預期的結果。 – MrSimpleMind

回答

2

首先,

left join prchseordr on imhstry.imhstry_ordr_id = prchseordr.prchseordr_id 
Where prchseordr_id = '1234' 

是有效inner join。你確定?如果不加入是requried然後改變它

left join prchseordr on imhstry.imhstry_ordr_id = prchseordr.prchseordr_id 
Where imhstry.imhstry_ordr_id = '1234' 

從你的樣本數據,它看起來像你只需要從SELECTGROUP BY下降imhstry_srce_jrnl並添加要求HAVING sum(imhstry_qntty_invcd_ap) = 0HAVING sum(imhstry_qntty_invcd_ap) < sum(imhstry_qntty_ordrd)依賴。

+0

謝謝Serg!我知道這比我製作它簡單得多。一旦我放棄了源期刊和生效日期,我就能夠使其工作! –

相關問題