2016-12-15 51 views
0
SELECT 
    COUNT(X.ACTIVITY_ID) 
FROM 
    (SELECT 
     ACTIVITY_ID 
    FROM 
     mi_s_data.dbo.[MI_FACT_ACTIVITY] 
    WHERE 
     Date_Key BETWEEN (convert(int, convert(varchar(10), DatePart(yyyy,GetDate()), 112)) - 2)*10000 + 101 
         AND convert(int, convert(varchar(10), GetDate(), 112)) 
    UNION 
    SELECT 
     ACTIVITY_ID 
    FROM 
     [MI_S_DATA].[DBO].[MOS_FACT_ACTIVITY_V1] MFA 
    WHERE 
     Date_Key BETWEEN (convert(int, convert(varchar(10), DatePart(yyyy,GetDate()), 112)) - 2)*10000 + 101 
         AND convert(int, convert(varchar(10), GetDate(), 112)) 
     AND MFA.ACTIVITY_UID IS NULL) X --Count is 1763046 

在運行單個計數象下面這樣:外部查詢計數是錯誤的

select count(*) 
from 
    (SELECT ACTIVITY_ID 
    FROM mi_s_data.dbo.[MI_FACT_ACTIVITY] 
    WHERE Date_Key BETWEEN (convert(int, convert(varchar(10), DatePart(yyyy,GetDate()), 112)) - 2)*10000 + 101 
         AND convert(int, convert(varchar(10), GetDate(), 112))) a --5774079 

select count(*) 
from 
    (SELECT ACTIVITY_ID 
     FROM [MI_S_DATA].[DBO].[MOS_FACT_ACTIVITY_V1] MFA 
     WHERE Date_Key BETWEEN (convert(int, convert(varchar(10), DatePart(yyyy,GetDate()), 112)) - 2)*10000 + 101 AND convert(int, convert(varchar(10), GetDate(), 112)) 
     AND MFA.ACTIVITY_UID IS NULL) a--0 
+0

歡迎StackOverflow上:如果您發佈的代碼,XML或數據樣本,** **請在突出那些行文本編輯器並單擊編輯器工具欄上的「代碼示例」按鈕(「{}」),以良好地格式化和語法突出顯示它! –

+0

請提供一些來自每個'select'的示例數據。 – Viki888

+2

您正在使用'UNION'。 'UNION'將消除任何重複的'ACTIVITY_ID'。 'UNION ALL'不是 – Squirrel

回答

1
SELECT 
    COUNT(X.ACTIVITY_ID) 
FROM 
    (SELECT 
     ACTIVITY_ID 
    FROM 
     mi_s_data.dbo.[MI_FACT_ACTIVITY] 
    WHERE 
     Date_Key BETWEEN (convert(int, convert(varchar(10), DatePart(yyyy,GetDate()), 112)) - 2)*10000 + 101 
         AND convert(int, convert(varchar(10), GetDate(), 112)) 
    UNION ALL 
    SELECT 
     ACTIVITY_ID 
    FROM 
     [MI_S_DATA].[DBO].[MOS_FACT_ACTIVITY_V1] MFA 
    WHERE 
     Date_Key BETWEEN (convert(int, convert(varchar(10), DatePart(yyyy,GetDate()), 112)) - 2)*10000 + 101 
         AND convert(int, convert(varchar(10), GetDate(), 112)) 
     AND MFA.ACTIVITY_UID IS NULL) X --Count is 1763046