Zwei Abfragen zu einer Verbinden

JudAD

Fleissiger Benutzer
Beiträge
71
Hallo,

leider verzweifel ich beim Verknüpfen zweier Abfragen zu einer. Ich habe 2 Abfragen (1&2) die ich gerne über ein left join zu einer Abfrage verküpfen würde. Leider klappt das nicht, sodass ich das ganze über temporäre Tabellen gelöst habe. Leider habe ich aber das Problem, dass ich in der Anwendung die das Script ausführen soll keine Möglichkeit habe mit into Tabellen anzulegen. Irgendwie muss es doch möglich sein diese Abfragen zu einer zu verbinden. Wenn ich die 3 Abfragen im SQL-Management Studio ausführe erhalte ich 2 Datensätze als Ergebnis, wobei bei einem Datensatz die Felder von der Abfrage2 NULL enthalten, was auch wegen dem left join korrekt ist. Wenn ich diese Abfragen versuche zu verbinden (siehe letzte Abfrage), erhalte ich aber immer nur einen Datensatz, und mein left join wird scheinbar ignoriert.

Für ein SQL Profi ist das sicher ein klacks - aber ich stehe irgendwie auf dem Schlauch.

Über eine Lösung würde ich mich sehr freuen

Danke

Tayfun

1. Abfrage
select OITM.ItemCode as SysNr, OITM.OnHand as Bestand, OITM.U_mindbest as MinBest
into tt1
from OITM
where U_KundenNr = '11971' and OnHand < U_mindbest and (U_mindbest != NULL or U_mindbest != 0)

2. Abfrage
select beas_ftpos.itemcode as SysNr, SUM(beas_ftpos.menge) as InFA, SUM(beas_ftpos.gel_menge) as Fertig
into tt2
from OITM
join beas_ftpos on beas_ftpos.itemcode = OITM.ItemCode
where beas_ftpos.abgkz = 'N' and beas_ftpos.belpos_id = 10 and beas_ftpos.stufe = 0 and OITM.U_KundenNr = '11971'
Group by beas_ftpos.itemcode

3. Abfrage
select tt1.*, tt2.InFA, tt2.Fertig
from tt1
left join tt2 on tt1.SysNr = tt2.SysNr
order by tt1.SysNr

Und das war mein Versuch zu Verbinden:

select OITM.ItemCode as SysNr, OITM.OnHand as Bestand, OITM.U_mindbest as MinBest, SUM(beas_ftpos.menge) as InFA, SUM(beas_ftpos.gel_menge) as Fertig
from OITM
left join beas_ftpos on beas_ftpos.itemcode = OITM.ItemCode
where (beas_ftpos.abgkz = 'N' and beas_ftpos.belpos_id = 10 and beas_ftpos.stufe = 0) and OITM.U_KundenNr = '11971' and OnHand < U_mindbest and (U_mindbest != NULL or U_mindbest != 0)
Group by OITM.ItemCode, OITM.OnHand, OITM.U_mindbest
order by OITM.ItemCode
 
Werbung:
Du kannst prinzipiell dort, wo du in deiner dritten Abfrage auf tt1 bzw. tt2 verweist, auch in Klammer das Select schreiben, also etwa:

select tt1.*, tt2.InFA, tt2.Fertig from (hier die erste Abfrage) as tt1 left join (hier die zweite Abfrage) as tt2 on ...
 
Werbung:
Zurück
Oben