[SQL Server:聚合列或子查询上的SUM函数

问题描述 投票:0回答:1

我需要获得下面列出的几列的sum。首先,这些列是在下面脚本的开头计算的,而最后一列[Total_SUM]是引发此错误的实际计算:

Msg 130,第15级,状态1,第60行无法对包含聚合或子查询的表达式执行聚合函数

Actual Total_SUM的计算从下面的SQL中的第171行开始。

SELECT 
    CASE 
        WHEN (SELECT ISNULL(SUM(PriorityID),0) FROM ISApps.dbo.MyMarkedRecords mr WITH (NOLOCK) WHERE EntityCode = 'CNT' AND EntityPKID = Cntct.GovContact_PK) = 0 THEN 0 
        WHEN (SELECT ISNULL(SUM(PriorityID),0) FROM ISApps.dbo.MyMarkedRecords mr WITH (NOLOCK) WHERE EntityCode = 'CNT' AND EntityPKID = Cntct.GovContact_PK) = 1 THEN 10 
        WHEN (SELECT ISNULL(SUM(PriorityID),0) FROM ISApps.dbo.MyMarkedRecords mr WITH (NOLOCK) WHERE EntityCode = 'CNT' AND EntityPKID = Cntct.GovContact_PK) = 2 THEN 15 
        WHEN (SELECT ISNULL(SUM(PriorityID),0) FROM ISApps.dbo.MyMarkedRecords mr WITH (NOLOCK) WHERE EntityCode = 'CNT' AND EntityPKID = Cntct.GovContact_PK) > 2 THEN 34
    END
     AS [Usage Score (Marks)],

     CASE 
        WHEN (    
                SELECT COUNT(ma.MasterAccessID) 
                FROM corpdata.dbo.masterAccess ma WITH (NOLOCK)    
                WHERE ma.ReferencePK = Cntct.GovContact_PK      
                AND ma.Program_ID IN (493, 494)    
                AND ma.Company_ID != 93   
                AND ma.AccessDate >= DATEADD(MONTH, DATEDIFF(MONTH, 0, DATEADD(m, -6, CURRENT_TIMESTAMP)), 0)    
            ) = 0 THEN 0 

        WHEN (    
                SELECT COUNT(ma.MasterAccessID) 
                FROM corpdata.dbo.masterAccess ma WITH (NOLOCK)    
                WHERE ma.ReferencePK = Cntct.GovContact_PK      
                AND ma.Program_ID IN (493, 494)    
                AND ma.Company_ID != 93 
                AND ma.AccessDate >= DATEADD(MONTH, DATEDIFF(MONTH, 0, DATEADD(m, -6, CURRENT_TIMESTAMP)), 0)    
            ) = 1 THEN 5
        WHEN (    
                SELECT COUNT(ma.MasterAccessID) 
                FROM corpdata.dbo.masterAccess ma WITH (NOLOCK)    
                WHERE ma.ReferencePK = Cntct.GovContact_PK      
                AND ma.Program_ID IN (493, 494)    
                AND ma.Company_ID != 93 
                AND ma.AccessDate >= DATEADD(MONTH, DATEDIFF(MONTH, 0, DATEADD(m, -6, CURRENT_TIMESTAMP)), 0)    
            ) = 2 THEN 10 

        WHEN (    
                SELECT COUNT(ma.MasterAccessID)
                FROM corpdata.dbo.masterAccess ma WITH (NOLOCK)    
                WHERE ma.ReferencePK = Cntct.GovContact_PK      
                AND ma.Program_ID IN (493, 494)    
                AND ma.Company_ID != 93  
                AND ma.AccessDate >= DATEADD(MONTH, DATEDIFF(MONTH, 0, DATEADD(m, -6, CURRENT_TIMESTAMP)), 0)    
            ) = 3 THEN 15
        WHEN (    
                SELECT COUNT(ma.MasterAccessID)   
                FROM corpdata.dbo.masterAccess ma WITH (NOLOCK)    
                WHERE ma.ReferencePK = Cntct.GovContact_PK      
                AND ma.Program_ID IN (493, 494)    
                AND ma.Company_ID != 93  
                AND ma.AccessDate >= DATEADD(MONTH, DATEDIFF(MONTH, 0, DATEADD(m, -6, CURRENT_TIMESTAMP)), 0)    
            ) > 3 THEN 33
    END
     AS [Usage Score (Contact Details Usage)],


    CASE 
        WHEN
         (SELECT SUM(count) FROM    
         (    
          SELECT COUNT(ma.MasterAccessID) AS count 
          FROM corpdata.dbo.masterAccess ma WITH (NOLOCK)    
          INNER JOIN CTE_ActiveBID_LEADs_Hits_Count bidleadcte    
          ON ma.ReferencePK = bidleadcte.BidId    
          WHERE bidleadcte.CntctId = Cntct.GovContact_PK       
          AND ma.Program_ID IN (450, 777)    
          AND ma.PKSection IN (73,80)    
          AND ma.Company_ID != 93 
          AND ma.AccessDate >= DATEADD(MONTH, DATEDIFF(MONTH, 0, DATEADD(m, -6, CURRENT_TIMESTAMP)), 0)    

         UNION ALL    

          SELECT COUNT(ma.MasterAccessID) AS count
          FROM corpdata.dbo.masterAccess ma WITH (NOLOCK)    
          INNER JOIN CTE_ActiveOPPs_HitsCount oppcte    
          ON ma.ReferencePK = oppcte.OppId    
          WHERE oppcte.CntctId = Cntct.GovContact_PK       
          AND ma.Program_ID IN (19, 396)    
          AND ma.PKSection IN (36)    
          AND ma.Company_ID != 93    
          AND ma.AccessDate >= DATEADD(MONTH, DATEDIFF(MONTH, 0, DATEADD(m, -6, CURRENT_TIMESTAMP)), 0)    

         a) < 16 THEN 0

         WHEN 
         (SELECT SUM(count) FROM    
         (    
          SELECT COUNT(ma.MasterAccessID) AS count  
          FROM corpdata.dbo.masterAccess ma WITH (NOLOCK)    
          INNER JOIN CTE_ActiveBID_LEADs_Hits_Count bidleadcte    
          ON ma.ReferencePK = bidleadcte.BidId    
          WHERE bidleadcte.CntctId = Cntct.GovContact_PK       
          AND ma.Program_ID IN (450, 777)    
          AND ma.PKSection IN (73,80)    
          AND ma.Company_ID != 93   
          AND ma.AccessDate >= DATEADD(MONTH, DATEDIFF(MONTH, 0, DATEADD(m, -6, CURRENT_TIMESTAMP)), 0)    

         UNION ALL    

          SELECT COUNT(ma.MasterAccessID) AS count 
          FROM corpdata.dbo.masterAccess ma WITH (NOLOCK)    
          INNER JOIN CTE_ActiveOPPs_HitsCount oppcte    
          ON ma.ReferencePK = oppcte.OppId    
          WHERE oppcte.CntctId = Cntct.GovContact_PK       
          AND ma.Program_ID IN (19, 396)    
          AND ma.PKSection IN (36)    
          AND ma.Company_ID != 93 
          AND ma.AccessDate >= DATEADD(MONTH, DATEDIFF(MONTH, 0, DATEADD(m, -6, CURRENT_TIMESTAMP)), 0)    

         a) BETWEEN 16 AND 30 THEN 5

         WHEN
         (SELECT SUM(count) FROM    
         (    
          SELECT COUNT(ma.MasterAccessID) AS count
          FROM corpdata.dbo.masterAccess ma WITH (NOLOCK)    
          INNER JOIN CTE_ActiveBID_LEADs_Hits_Count bidleadcte    
          ON ma.ReferencePK = bidleadcte.BidId    
          WHERE bidleadcte.CntctId = Cntct.GovContact_PK       
          AND ma.Program_ID IN (450, 777)    
          AND ma.PKSection IN (73,80)    
          AND ma.Company_ID != 93 
          AND ma.AccessDate >= DATEADD(MONTH, DATEDIFF(MONTH, 0, DATEADD(m, -6, CURRENT_TIMESTAMP)), 0)    

         UNION ALL    

          SELECT COUNT(ma.MasterAccessID) AS count 
          FROM corpdata.dbo.masterAccess ma WITH (NOLOCK)    
          INNER JOIN CTE_ActiveOPPs_HitsCount oppcte    
          ON ma.ReferencePK = oppcte.OppId    
          WHERE oppcte.CntctId = Cntct.GovContact_PK       
          AND ma.Program_ID IN (19, 396)    
          AND ma.PKSection IN (36)    
          AND ma.Company_ID != 93 
          AND ma.AccessDate >= DATEADD(MONTH, DATEDIFF(MONTH, 0, DATEADD(m, -6, CURRENT_TIMESTAMP)), 0)    

         )     
         a) BETWEEN 31 AND 50 THEN 10
         WHEN
         (SELECT SUM(count) FROM    
         (    
          SELECT COUNT(ma.MasterAccessID) AS count 
          FROM corpdata.dbo.masterAccess ma WITH (NOLOCK)    
          INNER JOIN CTE_ActiveBID_LEADs_Hits_Count bidleadcte    
          ON ma.ReferencePK = bidleadcte.BidId    
          WHERE bidleadcte.CntctId = Cntct.GovContact_PK       
          AND ma.Program_ID IN (450, 777)    
          AND ma.PKSection IN (73,80)    
          AND ma.Company_ID != 93 
          AND ma.AccessDate >= DATEADD(MONTH, DATEDIFF(MONTH, 0, DATEADD(m, -6, CURRENT_TIMESTAMP)), 0)    

         UNION ALL    

          SELECT COUNT(ma.MasterAccessID) AS count
          FROM corpdata.dbo.masterAccess ma WITH (NOLOCK)    
          INNER JOIN CTE_ActiveOPPs_HitsCount oppcte    
          ON ma.ReferencePK = oppcte.OppId    
          WHERE oppcte.CntctId = Cntct.GovContact_PK       
          AND ma.Program_ID IN (19, 396)    
          AND ma.PKSection IN (36)    
          AND ma.Company_ID != 93  
          AND ma.AccessDate >= DATEADD(MONTH, DATEDIFF(MONTH, 0, DATEADD(m, -6, CURRENT_TIMESTAMP)), 0)    

         )     
         a) BETWEEN 51 AND 100 THEN 15

     END 
     AS [Usage Score (Opp Content Usage)] ,


      --- SUM ---
     (SELECT SUM (
         CASE 
            WHEN (SELECT ISNULL(SUM(PriorityID),0) FROM ISApps.dbo.MyMarkedRecords mr WITH (NOLOCK) WHERE EntityCode = 'CNT' AND EntityPKID = Cntct.GovContact_PK) = 0 THEN 0 
            WHEN (SELECT ISNULL(SUM(PriorityID),0) FROM ISApps.dbo.MyMarkedRecords mr WITH (NOLOCK) WHERE EntityCode = 'CNT' AND EntityPKID = Cntct.GovContact_PK) = 1 THEN 10 
            WHEN (SELECT ISNULL(SUM(PriorityID),0) FROM ISApps.dbo.MyMarkedRecords mr WITH (NOLOCK) WHERE EntityCode = 'CNT' AND EntityPKID = Cntct.GovContact_PK) = 2 THEN 15 
            WHEN (SELECT ISNULL(SUM(PriorityID),0) FROM ISApps.dbo.MyMarkedRecords mr WITH (NOLOCK) WHERE EntityCode = 'CNT' AND EntityPKID = Cntct.GovContact_PK) > 2 THEN 34
        END) 
            +

        CASE 
            WHEN (    
                    SELECT COUNT(ma.MasterAccessID) 
                    FROM corpdata.dbo.masterAccess ma WITH (NOLOCK)    
                    WHERE ma.ReferencePK = Cntct.GovContact_PK      
                    AND ma.Program_ID IN (493, 494)    
                    AND ma.Company_ID != 93   
                    AND ma.AccessDate >= DATEADD(MONTH, DATEDIFF(MONTH, 0, DATEADD(m, -6, CURRENT_TIMESTAMP)), 0)    
                ) = 0 THEN 0 

            WHEN (    
                    SELECT COUNT(ma.MasterAccessID) 
                    FROM corpdata.dbo.masterAccess ma WITH (NOLOCK)    
                    WHERE ma.ReferencePK = Cntct.GovContact_PK      
                    AND ma.Program_ID IN (493, 494)    
                    AND ma.Company_ID != 93 
                    AND ma.AccessDate >= DATEADD(MONTH, DATEDIFF(MONTH, 0, DATEADD(m, -6, CURRENT_TIMESTAMP)), 0)    
                ) = 1 THEN 5
            WHEN (    
                    SELECT COUNT(ma.MasterAccessID) 
                    FROM corpdata.dbo.masterAccess ma WITH (NOLOCK)    
                    WHERE ma.ReferencePK = Cntct.GovContact_PK      
                    AND ma.Program_ID IN (493, 494)    
                    AND ma.Company_ID != 93 
                    AND ma.AccessDate >= DATEADD(MONTH, DATEDIFF(MONTH, 0, DATEADD(m, -6, CURRENT_TIMESTAMP)), 0)    
                ) = 2 THEN 10 

            WHEN (    
                    SELECT COUNT(ma.MasterAccessID)
                    FROM corpdata.dbo.masterAccess ma WITH (NOLOCK)    
                    WHERE ma.ReferencePK = Cntct.GovContact_PK      
                    AND ma.Program_ID IN (493, 494)    
                    AND ma.Company_ID != 93  
                    AND ma.AccessDate >= DATEADD(MONTH, DATEDIFF(MONTH, 0, DATEADD(m, -6, CURRENT_TIMESTAMP)), 0)    
                ) = 3 THEN 15
            WHEN (    
                    SELECT COUNT(ma.MasterAccessID)   
                    FROM corpdata.dbo.masterAccess ma WITH (NOLOCK)    
                    WHERE ma.ReferencePK = Cntct.GovContact_PK      
                    AND ma.Program_ID IN (493, 494)    
                    AND ma.Company_ID != 93  
                    AND ma.AccessDate >= DATEADD(MONTH, DATEDIFF(MONTH, 0, DATEADD(m, -6, CURRENT_TIMESTAMP)), 0)    
                ) > 3 THEN 33
        END
            +

        CASE 
            WHEN
             (SELECT SUM(count) FROM    
             (    
              SELECT COUNT(ma.MasterAccessID) AS count 
              FROM corpdata.dbo.masterAccess ma WITH (NOLOCK)    
              INNER JOIN CTE_ActiveBID_LEADs_Hits_Count bidleadcte    
              ON ma.ReferencePK = bidleadcte.BidId    
              WHERE bidleadcte.CntctId = Cntct.GovContact_PK       
              AND ma.Program_ID IN (450, 777)    
              AND ma.PKSection IN (73,80)    
              AND ma.Company_ID != 93 
              AND ma.AccessDate >= DATEADD(MONTH, DATEDIFF(MONTH, 0, DATEADD(m, -6, CURRENT_TIMESTAMP)), 0)    

             UNION ALL    

              SELECT COUNT(ma.MasterAccessID) AS count
              FROM corpdata.dbo.masterAccess ma WITH (NOLOCK)    
              INNER JOIN CTE_ActiveOPPs_HitsCount oppcte    
              ON ma.ReferencePK = oppcte.OppId    
              WHERE oppcte.CntctId = Cntct.GovContact_PK       
              AND ma.Program_ID IN (19, 396)    
              AND ma.PKSection IN (36)    
              AND ma.Company_ID != 93    
              AND ma.AccessDate >= DATEADD(MONTH, DATEDIFF(MONTH, 0, DATEADD(m, -6, CURRENT_TIMESTAMP)), 0)    

             a) < 16 THEN 0 

             WHEN 
             (SELECT SUM(count) FROM    
             (    
              SELECT COUNT(ma.MasterAccessID) AS count  
              FROM corpdata.dbo.masterAccess ma WITH (NOLOCK)    
              INNER JOIN CTE_ActiveBID_LEADs_Hits_Count bidleadcte    
              ON ma.ReferencePK = bidleadcte.BidId    
              WHERE bidleadcte.CntctId = Cntct.GovContact_PK       
              AND ma.Program_ID IN (450, 777)    
              AND ma.PKSection IN (73,80)    
              AND ma.Company_ID != 93   
              AND ma.AccessDate >= DATEADD(MONTH, DATEDIFF(MONTH, 0, DATEADD(m, -6, CURRENT_TIMESTAMP)), 0)    

             UNION ALL    

              SELECT COUNT(ma.MasterAccessID) AS count 
              FROM corpdata.dbo.masterAccess ma WITH (NOLOCK)    
              INNER JOIN CTE_ActiveOPPs_HitsCount oppcte    
              ON ma.ReferencePK = oppcte.OppId    
              WHERE oppcte.CntctId = Cntct.GovContact_PK       
              AND ma.Program_ID IN (19, 396)    
              AND ma.PKSection IN (36)    
              AND ma.Company_ID != 93 
              AND ma.AccessDate >= DATEADD(MONTH, DATEDIFF(MONTH, 0, DATEADD(m, -6, CURRENT_TIMESTAMP)), 0)    

             a) BETWEEN 16 AND 30 THEN 5

             WHEN
             (SELECT SUM(count) FROM    
             (    
              SELECT COUNT(ma.MasterAccessID) AS count
              FROM corpdata.dbo.masterAccess ma WITH (NOLOCK)    
              INNER JOIN CTE_ActiveBID_LEADs_Hits_Count bidleadcte    
              ON ma.ReferencePK = bidleadcte.BidId    
              WHERE bidleadcte.CntctId = Cntct.GovContact_PK       
              AND ma.Program_ID IN (450, 777)    
              AND ma.PKSection IN (73,80)    
              AND ma.Company_ID != 93 
              AND ma.AccessDate >= DATEADD(MONTH, DATEDIFF(MONTH, 0, DATEADD(m, -6, CURRENT_TIMESTAMP)), 0)    

             UNION ALL    

              SELECT COUNT(ma.MasterAccessID) AS count 
              FROM corpdata.dbo.masterAccess ma WITH (NOLOCK)    
              INNER JOIN CTE_ActiveOPPs_HitsCount oppcte    
              ON ma.ReferencePK = oppcte.OppId    
              WHERE oppcte.CntctId = Cntct.GovContact_PK       
              AND ma.Program_ID IN (19, 396)    
              AND ma.PKSection IN (36)    
              AND ma.Company_ID != 93 
              AND ma.AccessDate >= DATEADD(MONTH, DATEDIFF(MONTH, 0, DATEADD(m, -6, CURRENT_TIMESTAMP)), 0)    

             )     
             a) BETWEEN 31 AND 50 THEN 10
             WHEN
             (SELECT SUM(count) FROM    
             (    
              SELECT COUNT(ma.MasterAccessID) AS count 
              FROM corpdata.dbo.masterAccess ma WITH (NOLOCK)    
              INNER JOIN CTE_ActiveBID_LEADs_Hits_Count bidleadcte    
              ON ma.ReferencePK = bidleadcte.BidId    
              WHERE bidleadcte.CntctId = Cntct.GovContact_PK       
              AND ma.Program_ID IN (450, 777)    
              AND ma.PKSection IN (73,80)    
              AND ma.Company_ID != 93 
              AND ma.AccessDate >= DATEADD(MONTH, DATEDIFF(MONTH, 0, DATEADD(m, -6, CURRENT_TIMESTAMP)), 0)    

             UNION ALL    

              SELECT COUNT(ma.MasterAccessID) AS count
              FROM corpdata.dbo.masterAccess ma WITH (NOLOCK)    
              INNER JOIN CTE_ActiveOPPs_HitsCount oppcte    
              ON ma.ReferencePK = oppcte.OppId    
              WHERE oppcte.CntctId = Cntct.GovContact_PK       
              AND ma.Program_ID IN (19, 396)    
              AND ma.PKSection IN (36)    
              AND ma.Company_ID != 93  
              AND ma.AccessDate >= DATEADD(MONTH, DATEDIFF(MONTH, 0, DATEADD(m, -6, CURRENT_TIMESTAMP)), 0)    

         )     
         a) BETWEEN 51 AND 100 THEN 15

     END 


    ) AS TOTAL_SUM

FROM 
    [ISCore].[dbo].[GovContact] AS Cntct WITH (NOLOCK)    
LEFT OUTER JOIN 
    Contacts.dbo.CntctType AS CntctType WITH (NOLOCK) ON Cntct.TypeId = CntctType.CntctTypeId    
LEFT JOIN 
    ISLibrary.dbo.GovEntity AS GovEntity WITH (NOLOCK) ON GovEntity.GovEntityId = Cntct.GovEntityId    
LEFT OUTER JOIN 
    Contacts.dbo.CntctVerificationStatus vs WITH (NOLOCK) ON Cntct.VerificationStatusID = vs.CntctVerificationStatusID    
LEFT OUTER JOIN 
    ISCore.dbo.OrgChartDetailContact occ WITH (NOLOCK) ON Cntct.GovContact_PK = occ.ContactID    
WHERE     
    Cntct.GovEntityId IS NOT NULL     
    AND Cntct.Isgeneral = 0    
    AND Cntct.ValidatedIn = 1   
    AND Cntct.ActiveIn = 1    
    AND ProductCode = 'PSNIT'     
sql-server count sum average aggregate-functions
1个回答
0
投票

如果您要使用Count具有别名,请使用AS [Count]之类的名称(方括号[]将在此处为您提供帮助),否则SQL Server会将Count视为聚合函数。检查以下查询-

SELECT 
    CASE 
        WHEN (SELECT ISNULL(SUM(PriorityID),0) FROM ISApps.dbo.MyMarkedRecords mr WITH (NOLOCK) WHERE EntityCode = 'CNT' AND EntityPKID = Cntct.GovContact_PK) = 0 THEN 0 
        WHEN (SELECT ISNULL(SUM(PriorityID),0) FROM ISApps.dbo.MyMarkedRecords mr WITH (NOLOCK) WHERE EntityCode = 'CNT' AND EntityPKID = Cntct.GovContact_PK) = 1 THEN 10 
        WHEN (SELECT ISNULL(SUM(PriorityID),0) FROM ISApps.dbo.MyMarkedRecords mr WITH (NOLOCK) WHERE EntityCode = 'CNT' AND EntityPKID = Cntct.GovContact_PK) = 2 THEN 15 
        WHEN (SELECT ISNULL(SUM(PriorityID),0) FROM ISApps.dbo.MyMarkedRecords mr WITH (NOLOCK) WHERE EntityCode = 'CNT' AND EntityPKID = Cntct.GovContact_PK) > 2 THEN 34
    END
     AS [Usage Score (Marks)],

     CASE 
        WHEN (    
                SELECT COUNT(ma.MasterAccessID) 
                FROM corpdata.dbo.masterAccess ma WITH (NOLOCK)    
                WHERE ma.ReferencePK = Cntct.GovContact_PK      
                AND ma.Program_ID IN (493, 494)    
                AND ma.Company_ID != 93   
                AND ma.AccessDate >= DATEADD(MONTH, DATEDIFF(MONTH, 0, DATEADD(m, -6, CURRENT_TIMESTAMP)), 0)    
            ) = 0 THEN 0 

        WHEN (    
                SELECT COUNT(ma.MasterAccessID) 
                FROM corpdata.dbo.masterAccess ma WITH (NOLOCK)    
                WHERE ma.ReferencePK = Cntct.GovContact_PK      
                AND ma.Program_ID IN (493, 494)    
                AND ma.Company_ID != 93 
                AND ma.AccessDate >= DATEADD(MONTH, DATEDIFF(MONTH, 0, DATEADD(m, -6, CURRENT_TIMESTAMP)), 0)    
            ) = 1 THEN 5
        WHEN (    
                SELECT COUNT(ma.MasterAccessID) 
                FROM corpdata.dbo.masterAccess ma WITH (NOLOCK)    
                WHERE ma.ReferencePK = Cntct.GovContact_PK      
                AND ma.Program_ID IN (493, 494)    
                AND ma.Company_ID != 93 
                AND ma.AccessDate >= DATEADD(MONTH, DATEDIFF(MONTH, 0, DATEADD(m, -6, CURRENT_TIMESTAMP)), 0)    
            ) = 2 THEN 10 

        WHEN (    
                SELECT COUNT(ma.MasterAccessID)
                FROM corpdata.dbo.masterAccess ma WITH (NOLOCK)    
                WHERE ma.ReferencePK = Cntct.GovContact_PK      
                AND ma.Program_ID IN (493, 494)    
                AND ma.Company_ID != 93  
                AND ma.AccessDate >= DATEADD(MONTH, DATEDIFF(MONTH, 0, DATEADD(m, -6, CURRENT_TIMESTAMP)), 0)    
            ) = 3 THEN 15
        WHEN (    
                SELECT COUNT(ma.MasterAccessID)   
                FROM corpdata.dbo.masterAccess ma WITH (NOLOCK)    
                WHERE ma.ReferencePK = Cntct.GovContact_PK      
                AND ma.Program_ID IN (493, 494)    
                AND ma.Company_ID != 93  
                AND ma.AccessDate >= DATEADD(MONTH, DATEDIFF(MONTH, 0, DATEADD(m, -6, CURRENT_TIMESTAMP)), 0)    
            ) > 3 THEN 33
    END
     AS [Usage Score (Contact Details Usage)],


    CASE 
        WHEN
         (SELECT SUM([count]) FROM    
         (    
          SELECT COUNT(ma.MasterAccessID) AS [count] 
          FROM corpdata.dbo.masterAccess ma WITH (NOLOCK)    
          INNER JOIN CTE_ActiveBID_LEADs_Hits_Count bidleadcte    
          ON ma.ReferencePK = bidleadcte.BidId    
          WHERE bidleadcte.CntctId = Cntct.GovContact_PK       
          AND ma.Program_ID IN (450, 777)    
          AND ma.PKSection IN (73,80)    
          AND ma.Company_ID != 93 
          AND ma.AccessDate >= DATEADD(MONTH, DATEDIFF(MONTH, 0, DATEADD(m, -6, CURRENT_TIMESTAMP)), 0)    

         UNION ALL    

          SELECT COUNT(ma.MasterAccessID) AS [count]
          FROM corpdata.dbo.masterAccess ma WITH (NOLOCK)    
          INNER JOIN CTE_ActiveOPPs_HitsCount oppcte    
          ON ma.ReferencePK = oppcte.OppId    
          WHERE oppcte.CntctId = Cntct.GovContact_PK       
          AND ma.Program_ID IN (19, 396)    
          AND ma.PKSection IN (36)    
          AND ma.Company_ID != 93    
          AND ma.AccessDate >= DATEADD(MONTH, DATEDIFF(MONTH, 0, DATEADD(m, -6, CURRENT_TIMESTAMP)), 0)    

         a) < 16 THEN 0

         WHEN 
         (SELECT SUM([count]) FROM    
         (    
          SELECT COUNT(ma.MasterAccessID) AS [count] 
          FROM corpdata.dbo.masterAccess ma WITH (NOLOCK)    
          INNER JOIN CTE_ActiveBID_LEADs_Hits_Count bidleadcte    
          ON ma.ReferencePK = bidleadcte.BidId    
          WHERE bidleadcte.CntctId = Cntct.GovContact_PK       
          AND ma.Program_ID IN (450, 777)    
          AND ma.PKSection IN (73,80)    
          AND ma.Company_ID != 93   
          AND ma.AccessDate >= DATEADD(MONTH, DATEDIFF(MONTH, 0, DATEADD(m, -6, CURRENT_TIMESTAMP)), 0)    

         UNION ALL    

          SELECT COUNT(ma.MasterAccessID) AS [count] 
          FROM corpdata.dbo.masterAccess ma WITH (NOLOCK)    
          INNER JOIN CTE_ActiveOPPs_HitsCount oppcte    
          ON ma.ReferencePK = oppcte.OppId    
          WHERE oppcte.CntctId = Cntct.GovContact_PK       
          AND ma.Program_ID IN (19, 396)    
          AND ma.PKSection IN (36)    
          AND ma.Company_ID != 93 
          AND ma.AccessDate >= DATEADD(MONTH, DATEDIFF(MONTH, 0, DATEADD(m, -6, CURRENT_TIMESTAMP)), 0)    

         a) BETWEEN 16 AND 30 THEN 5

         WHEN
         (SELECT SUM([count]) FROM    
         (    
          SELECT COUNT(ma.MasterAccessID) AS [count]
          FROM corpdata.dbo.masterAccess ma WITH (NOLOCK)    
          INNER JOIN CTE_ActiveBID_LEADs_Hits_Count bidleadcte    
          ON ma.ReferencePK = bidleadcte.BidId    
          WHERE bidleadcte.CntctId = Cntct.GovContact_PK       
          AND ma.Program_ID IN (450, 777)    
          AND ma.PKSection IN (73,80)    
          AND ma.Company_ID != 93 
          AND ma.AccessDate >= DATEADD(MONTH, DATEDIFF(MONTH, 0, DATEADD(m, -6, CURRENT_TIMESTAMP)), 0)    

         UNION ALL    

          SELECT COUNT(ma.MasterAccessID) AS [count] 
          FROM corpdata.dbo.masterAccess ma WITH (NOLOCK)    
          INNER JOIN CTE_ActiveOPPs_HitsCount oppcte    
          ON ma.ReferencePK = oppcte.OppId    
          WHERE oppcte.CntctId = Cntct.GovContact_PK       
          AND ma.Program_ID IN (19, 396)    
          AND ma.PKSection IN (36)    
          AND ma.Company_ID != 93 
          AND ma.AccessDate >= DATEADD(MONTH, DATEDIFF(MONTH, 0, DATEADD(m, -6, CURRENT_TIMESTAMP)), 0)    

         )     
         a) BETWEEN 31 AND 50 THEN 10
         WHEN
         (SELECT SUM([count]) FROM    
         (    
          SELECT COUNT(ma.MasterAccessID) AS [count] 
          FROM corpdata.dbo.masterAccess ma WITH (NOLOCK)    
          INNER JOIN CTE_ActiveBID_LEADs_Hits_Count bidleadcte    
          ON ma.ReferencePK = bidleadcte.BidId    
          WHERE bidleadcte.CntctId = Cntct.GovContact_PK       
          AND ma.Program_ID IN (450, 777)    
          AND ma.PKSection IN (73,80)    
          AND ma.Company_ID != 93 
          AND ma.AccessDate >= DATEADD(MONTH, DATEDIFF(MONTH, 0, DATEADD(m, -6, CURRENT_TIMESTAMP)), 0)    

         UNION ALL    

          SELECT COUNT(ma.MasterAccessID) AS count
          FROM corpdata.dbo.masterAccess ma WITH (NOLOCK)    
          INNER JOIN CTE_ActiveOPPs_HitsCount oppcte    
          ON ma.ReferencePK = oppcte.OppId    
          WHERE oppcte.CntctId = Cntct.GovContact_PK       
          AND ma.Program_ID IN (19, 396)    
          AND ma.PKSection IN (36)    
          AND ma.Company_ID != 93  
          AND ma.AccessDate >= DATEADD(MONTH, DATEDIFF(MONTH, 0, DATEADD(m, -6, CURRENT_TIMESTAMP)), 0)    

         )     
         a) BETWEEN 51 AND 100 THEN 15

     END 
     AS [Usage Score (Opp Content Usage)] ,


      --- SUM ---
     (SELECT SUM (
         CASE 
            WHEN (SELECT ISNULL(SUM(PriorityID),0) FROM ISApps.dbo.MyMarkedRecords mr WITH (NOLOCK) WHERE EntityCode = 'CNT' AND EntityPKID = Cntct.GovContact_PK) = 0 THEN 0 
            WHEN (SELECT ISNULL(SUM(PriorityID),0) FROM ISApps.dbo.MyMarkedRecords mr WITH (NOLOCK) WHERE EntityCode = 'CNT' AND EntityPKID = Cntct.GovContact_PK) = 1 THEN 10 
            WHEN (SELECT ISNULL(SUM(PriorityID),0) FROM ISApps.dbo.MyMarkedRecords mr WITH (NOLOCK) WHERE EntityCode = 'CNT' AND EntityPKID = Cntct.GovContact_PK) = 2 THEN 15 
            WHEN (SELECT ISNULL(SUM(PriorityID),0) FROM ISApps.dbo.MyMarkedRecords mr WITH (NOLOCK) WHERE EntityCode = 'CNT' AND EntityPKID = Cntct.GovContact_PK) > 2 THEN 34
        END) 
            +

        CASE 
            WHEN (    
                    SELECT COUNT(ma.MasterAccessID) 
                    FROM corpdata.dbo.masterAccess ma WITH (NOLOCK)    
                    WHERE ma.ReferencePK = Cntct.GovContact_PK      
                    AND ma.Program_ID IN (493, 494)    
                    AND ma.Company_ID != 93   
                    AND ma.AccessDate >= DATEADD(MONTH, DATEDIFF(MONTH, 0, DATEADD(m, -6, CURRENT_TIMESTAMP)), 0)    
                ) = 0 THEN 0 

            WHEN (    
                    SELECT COUNT(ma.MasterAccessID) 
                    FROM corpdata.dbo.masterAccess ma WITH (NOLOCK)    
                    WHERE ma.ReferencePK = Cntct.GovContact_PK      
                    AND ma.Program_ID IN (493, 494)    
                    AND ma.Company_ID != 93 
                    AND ma.AccessDate >= DATEADD(MONTH, DATEDIFF(MONTH, 0, DATEADD(m, -6, CURRENT_TIMESTAMP)), 0)    
                ) = 1 THEN 5
            WHEN (    
                    SELECT COUNT(ma.MasterAccessID) 
                    FROM corpdata.dbo.masterAccess ma WITH (NOLOCK)    
                    WHERE ma.ReferencePK = Cntct.GovContact_PK      
                    AND ma.Program_ID IN (493, 494)    
                    AND ma.Company_ID != 93 
                    AND ma.AccessDate >= DATEADD(MONTH, DATEDIFF(MONTH, 0, DATEADD(m, -6, CURRENT_TIMESTAMP)), 0)    
                ) = 2 THEN 10 

            WHEN (    
                    SELECT COUNT(ma.MasterAccessID)
                    FROM corpdata.dbo.masterAccess ma WITH (NOLOCK)    
                    WHERE ma.ReferencePK = Cntct.GovContact_PK      
                    AND ma.Program_ID IN (493, 494)    
                    AND ma.Company_ID != 93  
                    AND ma.AccessDate >= DATEADD(MONTH, DATEDIFF(MONTH, 0, DATEADD(m, -6, CURRENT_TIMESTAMP)), 0)    
                ) = 3 THEN 15
            WHEN (    
                    SELECT COUNT(ma.MasterAccessID)   
                    FROM corpdata.dbo.masterAccess ma WITH (NOLOCK)    
                    WHERE ma.ReferencePK = Cntct.GovContact_PK      
                    AND ma.Program_ID IN (493, 494)    
                    AND ma.Company_ID != 93  
                    AND ma.AccessDate >= DATEADD(MONTH, DATEDIFF(MONTH, 0, DATEADD(m, -6, CURRENT_TIMESTAMP)), 0)    
                ) > 3 THEN 33
        END
            +

        CASE 
            WHEN
             (SELECT SUM([count]) FROM    
             (    
              SELECT COUNT(ma.MasterAccessID) AS [count]
              FROM corpdata.dbo.masterAccess ma WITH (NOLOCK)    
              INNER JOIN CTE_ActiveBID_LEADs_Hits_Count bidleadcte    
              ON ma.ReferencePK = bidleadcte.BidId    
              WHERE bidleadcte.CntctId = Cntct.GovContact_PK       
              AND ma.Program_ID IN (450, 777)    
              AND ma.PKSection IN (73,80)    
              AND ma.Company_ID != 93 
              AND ma.AccessDate >= DATEADD(MONTH, DATEDIFF(MONTH, 0, DATEADD(m, -6, CURRENT_TIMESTAMP)), 0)    

             UNION ALL    

              SELECT COUNT(ma.MasterAccessID) AS [count]
              FROM corpdata.dbo.masterAccess ma WITH (NOLOCK)    
              INNER JOIN CTE_ActiveOPPs_HitsCount oppcte    
              ON ma.ReferencePK = oppcte.OppId    
              WHERE oppcte.CntctId = Cntct.GovContact_PK       
              AND ma.Program_ID IN (19, 396)    
              AND ma.PKSection IN (36)    
              AND ma.Company_ID != 93    
              AND ma.AccessDate >= DATEADD(MONTH, DATEDIFF(MONTH, 0, DATEADD(m, -6, CURRENT_TIMESTAMP)), 0)    

             a) < 16 THEN 0 

             WHEN 
             (SELECT SUM([count]) FROM    
             (    
              SELECT COUNT(ma.MasterAccessID) AS [count]  
              FROM corpdata.dbo.masterAccess ma WITH (NOLOCK)    
              INNER JOIN CTE_ActiveBID_LEADs_Hits_Count bidleadcte    
              ON ma.ReferencePK = bidleadcte.BidId    
              WHERE bidleadcte.CntctId = Cntct.GovContact_PK       
              AND ma.Program_ID IN (450, 777)    
              AND ma.PKSection IN (73,80)    
              AND ma.Company_ID != 93   
              AND ma.AccessDate >= DATEADD(MONTH, DATEDIFF(MONTH, 0, DATEADD(m, -6, CURRENT_TIMESTAMP)), 0)    

             UNION ALL    

              SELECT COUNT(ma.MasterAccessID) AS [count] 
              FROM corpdata.dbo.masterAccess ma WITH (NOLOCK)    
              INNER JOIN CTE_ActiveOPPs_HitsCount oppcte    
              ON ma.ReferencePK = oppcte.OppId    
              WHERE oppcte.CntctId = Cntct.GovContact_PK       
              AND ma.Program_ID IN (19, 396)    
              AND ma.PKSection IN (36)    
              AND ma.Company_ID != 93 
              AND ma.AccessDate >= DATEADD(MONTH, DATEDIFF(MONTH, 0, DATEADD(m, -6, CURRENT_TIMESTAMP)), 0)    

             a) BETWEEN 16 AND 30 THEN 5

             WHEN
             (SELECT SUM([count]) FROM    
             (    
              SELECT COUNT(ma.MasterAccessID) AS [count]
              FROM corpdata.dbo.masterAccess ma WITH (NOLOCK)    
              INNER JOIN CTE_ActiveBID_LEADs_Hits_Count bidleadcte    
              ON ma.ReferencePK = bidleadcte.BidId    
              WHERE bidleadcte.CntctId = Cntct.GovContact_PK       
              AND ma.Program_ID IN (450, 777)    
              AND ma.PKSection IN (73,80)    
              AND ma.Company_ID != 93 
              AND ma.AccessDate >= DATEADD(MONTH, DATEDIFF(MONTH, 0, DATEADD(m, -6, CURRENT_TIMESTAMP)), 0)    

             UNION ALL    

              SELECT COUNT(ma.MasterAccessID) AS [count] 
              FROM corpdata.dbo.masterAccess ma WITH (NOLOCK)    
              INNER JOIN CTE_ActiveOPPs_HitsCount oppcte    
              ON ma.ReferencePK = oppcte.OppId    
              WHERE oppcte.CntctId = Cntct.GovContact_PK       
              AND ma.Program_ID IN (19, 396)    
              AND ma.PKSection IN (36)    
              AND ma.Company_ID != 93 
              AND ma.AccessDate >= DATEADD(MONTH, DATEDIFF(MONTH, 0, DATEADD(m, -6, CURRENT_TIMESTAMP)), 0)    

             )     
             a) BETWEEN 31 AND 50 THEN 10
             WHEN
             (SELECT SUM([count]) FROM    
             (    
              SELECT COUNT(ma.MasterAccessID) AS [count] 
              FROM corpdata.dbo.masterAccess ma WITH (NOLOCK)    
              INNER JOIN CTE_ActiveBID_LEADs_Hits_Count bidleadcte    
              ON ma.ReferencePK = bidleadcte.BidId    
              WHERE bidleadcte.CntctId = Cntct.GovContact_PK       
              AND ma.Program_ID IN (450, 777)    
              AND ma.PKSection IN (73,80)    
              AND ma.Company_ID != 93 
              AND ma.AccessDate >= DATEADD(MONTH, DATEDIFF(MONTH, 0, DATEADD(m, -6, CURRENT_TIMESTAMP)), 0)    

             UNION ALL    

              SELECT COUNT(ma.MasterAccessID) AS [count]
              FROM corpdata.dbo.masterAccess ma WITH (NOLOCK)    
              INNER JOIN CTE_ActiveOPPs_HitsCount oppcte    
              ON ma.ReferencePK = oppcte.OppId    
              WHERE oppcte.CntctId = Cntct.GovContact_PK       
              AND ma.Program_ID IN (19, 396)    
              AND ma.PKSection IN (36)    
              AND ma.Company_ID != 93  
              AND ma.AccessDate >= DATEADD(MONTH, DATEDIFF(MONTH, 0, DATEADD(m, -6, CURRENT_TIMESTAMP)), 0)    

         )     
         a) BETWEEN 51 AND 100 THEN 15

     END 


    ) AS TOTAL_SUM

FROM [ISCore].[dbo].[GovContact] AS Cntct WITH (NOLOCK)    
LEFT OUTER JOIN Contacts.dbo.CntctType AS CntctType WITH (NOLOCK) ON Cntct.TypeId = CntctType.CntctTypeId    
LEFT JOIN ISLibrary.dbo.GovEntity AS GovEntity WITH (NOLOCK) ON GovEntity.GovEntityId = Cntct.GovEntityId    
LEFT OUTER JOIN Contacts.dbo.CntctVerificationStatus vs WITH (NOLOCK) ON Cntct.VerificationStatusID = vs.CntctVerificationStatusID    
LEFT OUTER JOIN ISCore.dbo.OrgChartDetailContact occ WITH (NOLOCK) ON Cntct.GovContact_PK = occ.ContactID    
WHERE     
      Cntct.GovEntityId IS NOT NULL     
      AND Cntct.Isgeneral = 0    
      AND Cntct.ValidatedIn = 1   
      AND Cntct.ActiveIn = 1    
      AND ProductCode = 'PSNIT' 
© www.soinside.com 2019 - 2024. All rights reserved.