-1
我有2個表:的Sql SUM當值時=是
Order
作爲主表中的列訂單ID,金額,日期,客戶,金額OrderDetails
與子表列Id,OrderID,項目,狀態布爾(是或否),價格,數量,小計。
我想總結小計僅如果狀態是YES,那麼顯示的總和在主「金額」欄
SELECT
Order.OrderId, Order.Date, Order.Customer, Order.Amount,
SUM(OrderDetails.SubTotal) AS TotalAmount,
FROM
Order
INNER JOIN
OrderDetails ON Order.OrderId = OrderDetails.OrderId
WHERE
(OrderId.status = Yes)
GROUP BY
Order.OrderId, Order.Date, Order.Customer, Order.Amount
這個SQL語句只返回行,其中列Status
是「是的「,但我想返回所有這些,但SUM
只有Status = Yes
的行。
例子:
OrderDetails
表
Order-Id item Price Quantity SubTotal Status
-------------------------------------------------------
M1 Shirt 10 10 100 yes
M1 item2 5 5 25 no
M2 Item3 7 5 35 yes
Order
:
order-Id date Cus Amount
------------------------------------------------
M1 2016/8/20 Jean-Claude 100
M2 2016/8/20 Pierre 35
謝謝
注 - 如果您使用的是SQL 2012或更高版本,則可以使用'iif'函數代替'case'語句 – iliketocode
@iliketocode。 。 。絕對沒有理由使用'iif()'。這是爲了與MS Access的後向兼容而添加的不必要的功能。 CASE是ANSI標準,幾乎可以在所有數據庫中使用。 –