我试图在视图中合并两个SQL Server表。
它们看起来像这样:
表1 :
IAM groups
表2 :
Checkout Date Get max
-----------------------
2018-12-10 1
2018-12-10 1
2018-12-10 6
2018-12-12 1
2018-12-12 0
2018-12-12 2
我需要将它们组合起来,以便从第一张表中获得最大值,并从第二张表中获得出现次数。
Denial Date
-------------
2018-12-10
2018-12-10
2018-12-10
2018-12-11
2018-12-13
2018-12-13
到目前为止,我的代码如下:
Checkout Date Get max Count
--------------------------------
2018-12-10 6 3
2018-12-11 0 1
2018-12-12 2 0
我相信我的计数有误,但是我不知道该如何解决。我的输出看起来像这样:
CREATE VIEW UsageAndDenials
AS
SELECT
a.[Checkout Date],
MAX(a.[Get Max]) [Max],
COUNT(b.[Denial Date]) [Count]
FROM
Table1 a, Table2 b
WHERE
a.[Checkout Date] = b.[Denial Date]
GROUP BY
a.[Checkout Date]
我对T-SQL没有太多经验。感谢您的帮助
答案 0 :(得分:3)
您需要先汇总 才能获得准确的计数:
select t1.date, max(t1.get_max), coalesce(t2.cnt, 0)
from table1 t1 left join
(select t2.date, count(*) as cnt
from table2 t2
group by t2.date
) t2
on t2.date = t1.date
group by t1.date