[英]Sub-Query Problem
我有兩個這樣的桌子
會員及其購買
我需要這樣的輸出
Member_ID | CountofProducts
(並且產品值不應該為0且購買狀態為1)
SELECT
MemberName,
(SELECT COUNT(*) AS Count
FROM dbo.Purchases
WHERE MemberName = dbo.Members.MemberName
AND Res_Status = 1) AS Count
FROM
dbo.Members
我可以從上述查詢中獲得他們的總CountofPurchased Products
,但我需要避免它們的count=0
怎么做?
您可以嘗試類似
SELECT m.MemberName,
COUNT(p.*) Cnt
FROM Members m INNER JOIN
Purchases p ON m.MemberName = p.MemberName
WHERE p.Res_Status = 1
GROUP BY m.MemberName
不需要HAVING
子句,因為INNER JOIN
將排除會員中沒有購買的所有條目。
SELECT m.MemberName, COUNT(p.*) AS CountOfProducts
FROM Members m
INNER JOIN Purchases p ON m.MemberName = p.MemberName
WHERE p.Res_Status = 1
GROUP BY m.MemberName
HAVING COUNT(p.*) > 0
我認為以上內容可以滿足您的需求。 關鍵是您可能甚至不需要子查詢,而只需使用聯接就可以處理查詢(可能效率更高)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.