How do you UNION with multiple CTEs?

后端 未结 2 1432
孤城傲影
孤城傲影 2020-12-24 10:35

How do you use UNION with multiple Common Table Expressions?

I\'m trying to put together some summary numbers but no matter where I put the

相关标签:
2条回答
  • 2020-12-24 10:55

    If you are trying to union multiple CTEs, then you need to declare the CTEs first and then use them:

    With Clients As
        (
        Select Client_No
        From dbo.Decision_Data
        Group By Client_No
        Having Count(*) = 1
        )
        , CTE2 As
        (
        Select Client_No
        From dbo.Decision_Data
        Group By Client_No
        Having Count(*) = 2
        )
    Select Count(*)
    From Decision_Data
    Union
    Select Count(Distinct Client_No)
    From dbo.Decision_Data
    Union
    Select Count(*)
    From Clients
    Union
    Select Count(*)
    From CTE2;
    

    You can even use one CTE from another:

    With Clients As
            (
            Select Client_No
            From dbo.Decision_Data
            Group By Client_No
            Having Count(*) = 1
            )
            , CTE2FromClients As
            (
            Select Client_No
            From Clients
            )
        Select Count(*)
        From Decision_Data
        Union
        Select Count(Distinct Client_No)
        From dbo.Decision_Data
        Union
        Select Count(*)
        From Clients
        Union
        Select Count(*)
        From CTE2FromClients;
    

    WITH common_table_expression (Transact-SQL)

    0 讨论(0)
  • 2020-12-24 11:07

    You can do it like this:

    WITH    [Clients]
              AS ( SELECT   Client_No
                   FROM     dbo.Decision_Data
                   GROUP BY Client_No
                   HAVING   COUNT(*) = 1
                 ),
            [Clients2]
              AS ( SELECT   Client_No
                   FROM     dbo.Decision_Data
                   GROUP BY Client_No
                   HAVING   COUNT(*) = 1
                 )
    SELECT  COUNT(*)
    FROM    Clients
    UNION
    SELECT  COUNT(*)
    FROM    Clients2;
    
    0 讨论(0)
提交回复
热议问题