我有兩個單獨的查詢,自己工作正常,但我需要他們在一個查詢工作。我可以在excel中輕鬆地組合結果,但這是更大查詢的一部分。兩個計數在一個查詢與反對哪裏條件
的兩個單獨的查詢是:
SELECT
SiteProductVariation.ProductVariationID,
COUNT(SiteProduct.SiteProductID) AS Expr1
FROM
SiteProductVariation
INNER JOIN
SiteProduct ON SiteProduct.SiteProductID = SiteProductVariation.SiteProductID
WHERE
(SiteProductVariation.ProductVariationID = 159868)
AND (SiteProduct.ProductDisplay = 0)
GROUP BY
SiteProductVariation.ProductVariationID
和
SELECT
SiteProductVariation.ProductVariationID,
COUNT(SiteProduct.SiteProductID) AS Expr1
FROM
SiteProductVariation
INNER JOIN
SiteProduct ON SiteProduct.SiteProductID = SiteProductVariation.SiteProductID
WHERE
(SiteProductVariation.ProductVariationID = 159868)
AND (SiteProduct.ProductDisplay = 1)
GROUP BY
SiteProductVariation.ProductVariationID
對於本ProductVariationID
有11個Siteproductids,7 Productdisplay = 1和4 ProductDisplay = 0,並且這些查詢做返回那信息很好。
但我試圖將它們組合成:
SELECT
SiteProductVariation.ProductVariationID,
COUNT(SiteProduct.SiteProductID) AS Expr1,
COUNT(SiteProduct_1.SiteProductID) AS Expr2
FROM
SiteProductVariation
INNER JOIN
SiteProduct ON SiteProduct.SiteProductID = SiteProductVariation.SiteProductID
INNER JOIN
SiteProduct AS SiteProduct_1 ON SiteProduct_1.SiteProductID = SiteProductVariation.SiteProductID
WHERE
(SiteProductVariation.ProductVariationID = 159868)
AND (SiteProduct.ProductDisplay = 0)
AND (SiteProduct_1.ProductDisplay = 1)
GROUP BY
SiteProductVariation.ProductVariationID
,並沒有結果。我認爲這是因爲當我看到這個問題時使用group。
即使說我不能這樣做,任何幫助都很感激。 ProductDisplay等於1或0的結果可能有0個結果,因此可能需要考慮。提前致謝。
添加到已經給出了答案:通過使用兩個內部連接,你只能得到既有SiteProduct紀錄ProductDisplay = 0 SiteProductVariations和一個是ProductDisplay = 1。你可以使用左外部連接,將ProductDisplay條件移動到ON子句並計算不同的ID,但是如Cetin Basoz所示僅查詢一次表格會好得多(只有在那裏給出的解釋不準確)。 –
「給出的解釋不準確」???你認爲一個像這樣簡單的SQL需要任何解釋嗎? –
@Cetin Basoz:對不起,冒犯意味着:-)「價值不能同時爲0和1」是錯誤的。很可能一個SiteProductVariation存在兩個SiteProduct記錄,一個存儲ProductDisplay 0,一個存儲爲1.因此,您沒有真正解釋OP的查詢出了什麼問題。但是你的解決方案很好。 –