2017-03-15 16 views
0

我需要查詢表格中的LOCAL_TITLE,SECONDARY_TITLE和FORMAT_TITLE年份爲2014年但不是2013年的 不同的標題數量?SQL查詢在兩年內看到不同的標題

表名:stage_data_all 列:LOCAL_TITLE,SECONDARY_TITLE,FORMAT_TITLE和YR_DATA(兩個值,無論是2013年或2014年)

我想比較LOCAL_TITLE,SECONDARY_TITLE,FORMAT_TITLE對一年只找到了在值2014但不是在2013年。

謝謝。

解決方案1:

SELECT DISTINCT COUNT(*) 
    FROM (SELECT LOCAL_TITLE, SECONDARY_TITLE, FORMAT_TITLE 
      FROM [STG].[dbo].[stage_data_all] 
      WHERE YR_DATE = 2014) AS Y 
      LEFT OUTER JOIN 
      (SELECT LOCAL_TITLE, SECONDARY_TITLE, FORMAT_TITLE 
      FROM [STG].[dbo].[stage_data_all] 
      WHERE YR_DATE = 2013) AS X 
      ON Y.LOCAL_TITLE = X.LOCAL_TITLE 
      AND Y.SECONDARY_TITLE = X.SECONDARY_TITLE 
      AND Y.FORMAT_TITLE = X.FORMAT_TITLE 
    WHERE X.LOCAL_TITLE IS NULL 
    X.SECONDARY_TITLE IS NULL 
    X.FORMAT_TITLE IS NULL 

感謝大家的幫助。

+3

請提供表格結構,樣本數據和預期結果 –

+0

因此,我的表格有一列[YR_DATA],該列有2013或2014.我想查看我的列「LOCAL_TITLE」,「SECONDARY_TITLE」和「FORMAT_TITLE」在這兩年中是否有不同的標題。我正在考慮做一個左外連接,但我不確定它是否正確。 – Moe

+0

請在您的問題中發佈表結構。人們不會閱讀所有的評論。 –

回答

0

因爲它看起來並不像你有任何的ID,試試這個:

select distinct 
    LOCAL_TITLE 
, SECONDARY_TITLE 
, FORMAT_TITLE 
from MyTable mt 
left outer join (select distinct 
        LOCAL_TITLE 
       , SECONDARY_TITLE 
       , FORMAT_TITLE 
       from MyTable 
       where YR_DATA = '2013' 
       )t 
        on t.LOCAL_TITLE = mt.LOCAL_TITLE 
        and t.SECONDARY_TITLE = mt.SECONDARY_TITLE 
        and t.FORMAT_TITLE = mt.FORMAT_TITLE 
where (t.LOCAL_TITLE is NULL 
and t.SECONDARY_TITLE is NULL 
and t.FORMAT_TITLE is NULL) 
and mt.YR_DATA = '2014' 
; 
+0

嘿。感謝您的迴應。我很感激。我解決了它。這與你的回答非常相似。我們只是通過放置「和mt.YR_DATA ='2014'」。 – Moe

+0

很高興聽到。您應該發佈您的解決方案並選擇正確的答案。 – N1tr0

1
select distinct LOCAL_TITLE, SECONDARY_TITLE, FORMAT_TITLE from stage_data_all columns where YR_DATA != '2013' and YR_DATA = '2014' 

我覺得我可能會錯過一些東西,因爲這看起來比較簡單嗎?

如果你需要這些記錄的計數只是把它包在選擇與計數:

select count(*) from (select distinct LOCAL_TITLE, SECONDARY_TITLE, FORMAT_TITLE from stage_data_all columns where YR_DATA != '2013' and YR_DATA = '2014')