2016-03-15 54 views
0

我已经写了4个查询, 所有的都出现了一列是[来源]联合几个疑问

的细节我需要结合这个查询在一起,其结果将是肖恩与所有一个表每个[源]的结果(如1个表中所有的结果,没有重复的参数)

非常感谢。 的查询:

1)

SELECT [Source] , 
     COUNT (DISTINCT ROW_ID) AS 'Number Of Contacts' 
FROM [SRL-TST].[dbo].[TBL_SRL_Contacts] 
GROUP BY [Source] 

2)

SELECT [Source] , 
     COUNT (DISTINCT ROW_ID) AS 'FULL' 
FROM dbo.TBL_SRL_Contacts 
WHERE Email IS NOT NULL 
AND Company IS NOT NULL 
AND Privetphone IS NOT NULL 
AND Secondphone IS NOT NULL 
GROUP BY [Source] 

3)

SELECT [Source] , 
     COUNT (DISTINCT ROW_ID) AS 'PARTLY' 
FROM dbo.TBL_SRL_Contacts 
WHERE Email IS NOT NULL 
OR Company IS NOT NULL 
OR Privetphone IS NOT NULL 
OR Secondphone IS NOT NULL 

GROUP BY [来源]

4)

SELECT [Source] , 
     COUNT(DISTINCT ROW_ID) AS 'MISSING' 
FROM dbo.TBL_SRL_Contacts 
WHERE Email IS NULL 
AND Company IS NULL 
AND Privetphone IS NULL 
AND Secondphone IS NULL 
GROUP BY [Source] 

回答

3

可以使用条件汇总:

SELECT [Source] , 
     COUNT(DISTINCT ROW_ID) AS [Number Of Contacts], 
     COUNT(DISTINCT CASE WHEN Email IS NOT NULL AND Company IS NOT NULL AND Privetphone IS NOT NULL AND Secondphone IS NOT NULL 
        THEN ROW_ID 
      END) as [Full], 
     COUNT(DISTINCT CASE WHEN Email IS NOT NULL OR Company IS NOT NULL OR Privetphone IS NOT NULL OR Secondphone IS NOT NULL 
        THEN ROW_ID 
      END) as [Partly] 
     COUNT(DISTINCT CASE WHEN Email IS NULL AND Company IS NULL AND Privetphone IS NULL AND Secondphone IS NULL 
        THEN ROW_ID 
      END) as [Missing] 
FROM [SRL-TST].[dbo].[TBL_SRL_Contacts] 
GROUP BY [Source];