簡體   English   中英

SQL:如何比較同一列中兩行的對應值?

[英]SQL: how to compare corrosponding values two rows from same column?

我有兩個表:

VendorTrading;
id  date
1   01-01-2015
2   01-01-2015

CustomerProducts;
id tradeID ProductName Quantity
1  1       XYZ         20
2  2       ABC         30

我需要比較兩種產品的數量,在特定的日期名稱將作為參數給出。 到目前為止,這是我的查詢

Select sum(Cp.ProductQuantity) 
FROM VendorTrading VT inner join CustomerProducts CP on VT.Id = CP.VendorTradingId
WHERE  CP.ProductName = ISNULL ('XYZ', CP.ProductName) and VT.Tradedate = isnull('2015-01-20',VT.Tradedate)

僅返回任何人的數量之和。 我怎樣才能達到那個結果? 我需要將它們放在水晶報表中的圖表上。 此外,對於相同的事物,我需要反之亦然,但有兩個日期卻只有一個特定產品。

如果要返回任何人的數量之和,則應使用group by。

Select CP.ProductName,sum(Cp.ProductQuantity) 
FROM VendorTrading VT inner join CustomerProducts CP 
ON VT.Id = CP.VendorTradingId
WHERE  CP.ProductName = ISNULL('XYZ', CP.ProductName)
AND VT.Tradedate = isnull('2015-01-20',VT.Tradedate)
AND CP.ProductName in ('xyz','abc')
GROUP BY CP.ProductName

如果要比較兩個以上的產品,則查詢必須使用group by。 到目前為止,@ Loser的答案很適合您的問題。 也許您應該給我們更多您預期結果的細節。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM