2016-02-28 19 views
0

此查詢返回產品數量總和等於0且產品名稱爲'XYZ'的行數。但是我希望每個產品都有相同的結果。例如,如果我從where子句中刪除產品名稱,那麼它將爲數量爲0的每個產品帶來SUM。我希望它爲每個產品單獨返回。未來產品可能會增加。我必須首先檢查CustomerProduct表中有多少個不同的產品,然後需要爲每個產品查詢相同的東西。我怎樣才能做到這一點。標題可能不完美,如果需要,請提出建議/更正。如何在多個條件下獲取子查詢中的總行數

select Count(*) From 
(select distinct VI.Name, Cp.ProductName 
FROM VendorInfo VI inner join VendorTrading VT on VI.Id = VT.VendorId inner join CustomerProducts CP on VT.Id = CP.VendorTradingId 
Where VT.Tradedate = '2015-12-25' and CP.ProductName = 'XYZ' 
GROUP BY VI.Name, Cp.ProductName, CP.ProductQuantity 
HAVING SUM(CP.ProductQuantity) = 0) as x 

回答

0

阿凡,你可以添加tsql腳本來創建一些數據的表,所以我們更容易協助。不過,如果你簡化查詢,那麼你可以得到各產品和供應商與產品數量爲零這裏

select VI.Name, Cp.ProductName, SUM(CP.ProductQuantity) 
FROM VendorInfo VI 
inner join VendorTrading VT on VI.Id = VT.VendorId 
inner join CustomerProducts CP on VT.Id = CP.VendorTradingId 
Where VT.Tradedate = '2015-12-25' 
GROUP BY VI.Name, Cp.ProductName 
HAVING SUM(CP.ProductQuantity) = 0 
+0

你可以腳本我的回答http://stackoverflow.com/questions/35684293/confusion-between-having-and -where-SQL服務器 – gofr1

相關問題