简体   繁体   中英

How we can sum union tables column in sql?

Thanks in advance!

Need help to sum column counts of two different union tables.

Right now I am getting this data:

在此处输入图像描述

And that's how I want it to look like:

在此处输入图像描述

Below is the screenshot for your reference:

在此处输入图像描述

This is my code:

----------------SECUREELITE_NEW-----------------------
SELECT 
    MASTERCODE,
    COUNT(*) SECUREELITE_NEW,
    (SUM(CONVERT(float, ADDONKeyReplacementAmt)) +
        SUM(CONVERT(float, ADDONEngineProtAmt))) AS 'ACHIEVED-ODELITE_SECUREELITE_NEW'  
INTO  
    #SECUREELITENEW_PAC
FROM    
    [dbo].[table_dat]
WHERE 
    PolicyStatus = 'new' 
    AND ADDONIsKeyReplacement = '1' 
    AND ADDONIsRTI = '1' 
    AND (LTRIM(RTRIM(ISCANCELLEDSTATUS)) = 0)
    AND CAST(InsPolicyCreatedDate AS date) BETWEEN '2020-11-01' AND '2020-11-30' 
    AND dealermastercode = 'D302' 
GROUP BY
    MASTERCODE

----------------SECUREELITE_NEW_Eng-----------------------
SELECT 
    mstercode,
    COUNT(*) SECUREELITE_NEW,
    (SUM(CONVERT(float, ADDONKeyReplacementAmt )) +
         SUM(CONVERT(float, ADDONEngineProtAmt))) AS 'ACHIEVED-ODELITE_SECUREELITE_NEW'  
INTO
    #SECUREELITE_NEW_Engs
FROM    
    [dbo].[table_dat]
WHERE 
    PolicyStatus = 'new' 
    AND ADDONIsKeyReplacement = '1'
    AND CAST(InsPolicyCreatedDate AS date) BETWEEN '2020-11-01' AND '2020-11-30' 
    AND dealermastercode = 'D302' 
GROUP BY 
    MASTERCODE   

------------------union------------
SELECT
    SECUREELITE_NEW.* 
INTO
    #SECUREELITENEW 
FROM
    (SELECT * FROM #SECUREELITENEW_PAC
     UNION ALL
     SELECT * FROM #SECUREELITE_NEW_Engs) SECUREELITE_NEW

SELECT * FROM #SECUREELITENEW

Create an inline view with two of those queries and join them by mastercode.Once you join can add relavant columns(pseudocolumns infact).

    Select tab1.MASTERCODE, 
           (tab1.SECUREELITE_NEW + tab2.SECUREELITE_NEW) as SECUREELITE_NEW, 
           (tab1.ACHIEVED-ODELITE_SECUREELITE_NEW + tab2.ACHIEVED-ODELITE_SECUREELITE_NEW)  as ACHIEVED-ODELITE_SECUREELITE_NEW
    from 
     /* First Query */
    (SELECT 
        MASTERCODE,
        COUNT(*) SECUREELITE_NEW,
        (SUM(CONVERT(float, ADDONKeyReplacementAmt)) +
            SUM(CONVERT(float, ADDONEngineProtAmt))) AS 'ACHIEVED-ODELITE_SECUREELITE_NEW'  
    FROM    
        [dbo].[table_dat]
    WHERE 
        PolicyStatus = 'new' 
        AND ADDONIsKeyReplacement = '1' 
        AND ADDONIsRTI = '1' 
        AND (LTRIM(RTRIM(ISCANCELLEDSTATUS)) = 0)
        AND CAST(InsPolicyCreatedDate AS date) BETWEEN '2020-11-01' AND '2020-11-30' 
        AND dealermastercode = 'D302' 
    GROUP BY
        MASTERCODE) tab1,
   /* Second Query */
        (SELECT 
            mstercode,
            COUNT(*) SECUREELITE_NEW,
            (SUM(CONVERT(float, ADDONKeyReplacementAmt )) +
                 SUM(CONVERT(float, ADDONEngineProtAmt))) AS 'ACHIEVED-ODELITE_SECUREELITE_NEW'  
        FROM    
            [dbo].[table_dat]
        WHERE 
            PolicyStatus = 'new' 
            AND ADDONIsKeyReplacement = '1'
            AND CAST(InsPolicyCreatedDate AS date) BETWEEN '2020-11-01' AND '2020-11-30' 
            AND dealermastercode = 'D302' 
        GROUP BY 
            MASTERCODE)  tab2
            where tab1.MASTERCODE  = tab2.MASTERCODE;

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM