将两个表合并为SQL Server中的视图

时间:2019-02-19 21:38:46

标签: sql sql-server

我试图在视图中合并两个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没有太多经验。感谢您的帮助

1 个答案:

答案 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