以下のクエリは、特定のアウトレットの合計売上高を取得します。SQL Serverの合計ケース
出力:
SourceName Amount
------------------------
Call Center 2997.00
Delivero Credit 5879.00
Eat Easily Cash 57.00
私は例えばコンセント、コンセント1と出口2のリストを持っている場合は、私が各コンセントのソースで総売上高を取得したいとそこがない場合は、販売売上金額値すべき出てくるのでゼロにする。
SourceName outlet 1 outlet 2
-----------------------------------
Call Center 2997.00 500
Delivero Credit 5879.00 0
Eat Easily Cash 57.00 66
以下のクエリ上の問題は、それが二重の合計DeliveryCharge
それがあるべきSUM((OrderDetails.Quantity * OrderDetails.UnitPrice)) + Orders.DeliveryCharge - ((SUM((OrderDetails.Quantity * OrderDetails.UnitPrice))) * Orders.Discount/100)
更新クエリ:現在、意味をなさないソース名、2回グループ化されている
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
ここにいくつかのデータを表示する必要があります。 4つのテーブルと3つの結合を含むクエリでは、データが何であるかを推測することは困難です。 –
更新を参照してください.. – Ayman