2016-04-29 12 views
0

Ich versuche eine SQL-Abfrage zu erstellen, die eine Liste aller Bestellungen anzeigt, die nicht verbucht wurden. In unserem aktuellen System, um zu überprüfen, ob eine Bestellung verbucht wurde, klicken Mitglieder der AP-Mitarbeiter in die Bestellung und klicken auf eine Registerkarte, wo sie mit Daten ähnlich der folgenden angezeigt werden.Unbeurteilte Bestellungen finden

Dies ist ein Beispiel für eine Vouchered PO. Die AP-Einkaufszeile bildet den Kaufgutschein ab.

enter image description here

Ein unvouchered PO würde wie folgt aussehen. Wie Sie sehen, fehlen die Zeileneinträge für den AP Purchase, die es als Vouchered markieren. enter image description here

Wenn ich die Ergebnisse für den vouchered PO meinen Code aussehen würde wie folgt neu erstellen wollte:

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 

Was Ich mag würde zu tun ist, erstellen Sie eine Abfrage, zeigt eine einfache Liste aller Kauf Aufträge in unserem System, die nicht verbucht wurden, und, wenn möglich, alle Bestellungen, die nicht vollständig verbucht wurden. Ich habe das Gefühl, dass das ziemlich einfach ist, aber ich stecke fest und kann mir nicht vorstellen, wie ich das lösen soll. Jede Hilfe wird sehr geschätzt.

Bitte lassen Sie mich wissen, wenn dies nicht klar ist oder weitere Informationen benötigt werden.

+0

Tabelle Definitionen für imhstry und prchseordr würde viel helfen, auch erwartetes Ergebnis, obwohl Sie versuchen, Ihre Frage zu erklären, gute ddl und die erwarteten Ergebnisse sind klarer. – MrSimpleMind

Antwort

2

Zuerst

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

ist effektiv inner join. Bist du sicher? wenn LEFT JOIN requried wird dann ändern Sie es

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

Aus Ihrer Beispieldaten es aussieht wie Sie brauchen nur imhstry_srce_jrnl fallen aus SELECT und GROUP BY und fügen HAVING sum(imhstry_qntty_invcd_ap) = 0 oder HAVING sum(imhstry_qntty_invcd_ap) < sum(imhstry_qntty_ordrd) je nach Bedarf.

+0

Danke Serg! Ich wusste, es war viel einfacher als ich es machte. Sobald ich das Quelljournal und das Datum des Inkrafttretens fallen gelassen habe, konnte ich es zum Laufen bringen! –

Verwandte Themen