Databases Reference
In-Depth Information
25.2■Zahlarten in der Retourentabelle
Nun wollen wir eine neue virtuelle Retourentabelle erzeugen, in der wir die Zahlarten mit
einbauen. Die Zahlart wird unten an die Unterabfrage ret (Retouren) angefügt.
Select ord.Bestellung, ord.Artikel,
isnull (ret.Artikelretouren,0)Artikelretouren, ret.Zahlart
Zahlart hinzugefügt
from
(SELECT s.orderNo Bestellung,
cast (sum (s.quantity)as DECIMAL(10,0))Artikel
from [dbo].[iw_sales]s
where s.type = 2
and s.quantity > 0
and s.orderDate between '01.04.2011' and '30.06.2011'
group by s.orderNo)ord
Left OUTER JOIN
(SELECT rh.orderNo Bestellung, cr.reason Zahlart,
hier die Zahlart ausgeben
cast(sum( rl.quantity)as DECIMAL(10,0)) Artikelretouren
FROM [dbo].[iw_sales]s,[dbo].[iw_return_line]rl,
[dbo].[iw_return_header]rh,[dbo].[iw_codeReason]cr
Tabelle codeReason für Zahlart
where s.type = 2
and s.orderNo = rh.orderNo
and rh.returnNo = rl.returnNo
and s.IWAN = rl.IWAN
and rl.type = 2
and rh.paymentCode = cr.Code → Join return_header mit codeReason
and cr.Type = 'payment' → der richtige Type
group by rh.orderNo, cr.reason)as ret
on ord.Bestellung = ret.Bestellung
Wenn Sie diesen Select laufen lassen, bekommen Sie in der Spalte Zahlart sehr viele Zeilen
mit NULL angezeigt. Das sind alles Bestellungen ohne Retouren. Da die Zahlart nur bei den
Retouren erfasst ist, können wir gleich die Fälle herausnehmen, bei denen nicht retourniert
wurde. Setzen Sie dazu die where -Bedingung
where ret.Artikelretouren > 0
und fügen Sie diese einfach unten als letzte Zeile an:
Select ord.Bestellung, ord.Artikel,
isnull (ret.Artikelretouren,0)Artikelretouren, ret.Zahlart
from
(SELECT s.orderNo Bestellung,
cast (sum (s.quantity)as DECIMAL(10,0))Artikel
from [dbo].[iw_sales]s
where s.type = 2
and s.quantity > 0
and s.orderDate between '01.04.2011' and '30.06.2011'
group by s.orderNo)ord
Left OUTER JOIN
(SELECT rh.orderNo Bestellung, cr.reason Zahlart,
 
Search WWH ::




Custom Search