首页 > 解决方案 > 根据 Count with Clause on Table 2 对表 1 进行计数,sql

问题描述

表格1

在此处输入图像描述

表 2

在此处输入图像描述

我需要找到在表 2 中实现所有“成就 ID”“启用”的“已实现日期”而不是 Null 的唯一商店总数的计数。

到目前为止,我可以找到实现硬编码数字的商店的数量,但我并没有突破我使用表 2 中的启用 ID 计数来定义数字的部分。

SELECT 
    COUNT(*) AS count 
FROM 
    (SELECT 
         StoreNumber, COUNT(*) as Achievements 
     FROM 
         StoreAchievementProgress
     WHERE 
         AchievedDate IS NOT NULL 
     GROUP BY 
         StoreNumber) count

标签: sql

解决方案


也许这个查询

SELECT S.StoreNumber
FROM StoreAchievementProgress S 
RIGHT JOIN (SELECT Id FROM Table2 WHERE Enabled=1 )T
    ON T.Id=S.AchievementId
    AND AchievedDate IS NOT NULL

GROUP BY S.StoreNumber  
HAVING COUNT(1) = (SELECT COUNT(Id) FROM Table2 WHERE Enabled=1 )

推荐阅读