簡體   English   中英

子查詢問題

[英]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.

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