我有以下查询,给我有关StatsStrategySessions表的第二个JOIN / COUNT的问题:
SELECT
fa.Id
, CAST(fa.StatDate AS DATE)
, COUNT(sa.CreatedDateTime) AS 'TotalApplications'
, COUNT(ss.CreatedDateTime) AS 'TotalStrategySessions'
FROM StatsFacebookAds fa
LEFT JOIN StatsApplications sa
ON CAST(fa.StatDate AS DATE) = CAST(sa.CreatedDateTime AS DATE)
AND sa.LeadSourceId = 1
LEFT JOIN StatsStrategySessions ss
ON CAST(fa.StatDate AS DATE) = CAST(ss.CreatedDateTime AS DATE)
AND ss.LeadSourceId = 1
GROUP BY
fa.Id
, fa.StatDate
它返回的两倍应该是的数量...
它返回...
Id TotalApplications TotalStrategySessions
----------- ---------- ----------------- ---------------------
1 2019-12-02 1 1
2 2019-12-03 0 0
3 2019-12-04 0 0
4 2019-12-05 4 4
第二个JOIN / COUNT倍增至4,而不是原来的2。
当我在没有第二个JOIN / COUNT的情况下运行代码时,它按预期返回。
代码按预期运行。
SELECT
fa.Id
, CAST(fa.StatDate AS DATE)
, COUNT(sa.CreatedDateTime) AS 'TotalApplications'
FROM StatsFacebookAds fa
LEFT JOIN StatsApplications sa
ON CAST(fa.StatDate AS DATE) = CAST(sa.CreatedDateTime AS DATE)
AND sa.LeadSourceId = 1
GROUP BY
fa.Id
, fa.StatDate
它返回我期望的结果...
Id TotalApplications
----------- ---------- -----------------
1 2019-12-02 1
2 2019-12-03 0
3 2019-12-04 0
4 2019-12-05 2
但是一旦我加入第二张表,数字就不是我要显示的数字。
自从我写了tsql以来已经有一段时间了,希望我能在上面放置一些...
感谢您的协助!
[尝试在StatsApplications
表上使用不同的计数: