Die folgende Abfrage erhalten Gesamtumsatz für bestimmte Steckdose.Summe in SQL Server
Ausgang:
SourceName Amount
------------------------
Call Center 2997.00
Delivero Credit 5879.00
Eat Easily Cash 57.00
Wenn ich eine Liste der Filialen haben, Auslass 1 und Ausgang 2 zum Beispiel möchte ich so für jeden Ausgang einen Gesamtumsatz von Quelle erhalten und wenn es keine Verkäufe Verkaufswert Betrag sollte sei null, also wird out put sein.
SourceName outlet 1 outlet 2
-----------------------------------
Call Center 2997.00 500
Delivero Credit 5879.00 0
Eat Easily Cash 57.00 66
Das Problem auf der folgenden Abfrage sollte es doppelte Summe DeliveryCharge
es SUM((OrderDetails.Quantity * OrderDetails.UnitPrice)) + Orders.DeliveryCharge - ((SUM((OrderDetails.Quantity * OrderDetails.UnitPrice))) * Orders.Discount/100)
seine
Aktualisiert Abfrage:
SELECT
s.SourceName,
SUM(CASE
WHEN o.OutletID ='1' THEN ((ord.Quantity * ord.UnitPrice) + ordd.DeliveryCharge)
ELSE 0
END) AS [Outlet 1],
SUM(CASE
WHEN o.OutletID ='1' THEN ((ord.Quantity * ord.UnitPrice) + ordd.DeliveryCharge)
ELSE 0
END) AS [Outlet 2]
FROM
dbo.Orders ordd
INNER JOIN
dbo.Outlets o ON ordd.OutletID = o.OutletID
INNER JOIN
dbo.OrderDetails ord ON ord.OrderID = ordd.OrderID
LEFT OUTER JOIN
dbo.Sources s ON s.SourceID = ordd.SourceID
WHERE
ordd.OrderID NOT IN (SELECT CanceledOrders.OrderID
FROM CanceledOrders)
AND ordd.OrderDate BETWEEN '2017-05-1 10:00:00.000' AND '2017-06-1 04:00:00.000'
GROUP BY
s.SourceID, s.SourceName
ORDER BY
s.SourceName
Sie müssen uns hier einige Daten zeigen. Bei einer Abfrage mit 4 Tabellen und 3 Joins ist es schwierig zu erraten, wie Ihre Daten aussehen könnten. –
siehe Update pls .. – Ayman