2012-05-28 104 views
0

解決我的問題...請參見代碼創建從用於創建2較早計算列的表達式計算列

這是從不同的表進行比較2行的序列號我的SQL語句的第二件。如果有一個匹配,則顯示一個肯定的,但如果有不匹配則沒有顯示 這樣做是爲了在不同的表

SELECT table1.serial1, table1.serial2, 
     CASE WHEN table2.serial1 IS NULL THEN 'No' ELSE 'Yes' END AS [computedCol1], 
     CASE WHEN table3.serial2 IS NULL THEN 'No' ELSE 'Yes' END AS [computedCol2] 
FROM table1 
     LEFT JOIN table2 
      ON table2.serial1 = table1.serial1 
     LEFT JOIN dbo.EPG 
      ON table3.serial2 = table1.serial2 

我想要做的就是創建2倍不同的原因做兩次如果第一欄或第二欄枯萎,另一欄放置是行,否則它會顯示一個否。我意識到你不能compre計算列,所以我想要做的是重複表達式,並有一個或沒有運氣的聲明。我不是很有經驗寫anyhting其他則基本的SQL ...這是MTY嘗試:

SELECT DISTINCT table1.serial1, table1.serial2, 
     CASE WHEN table2.serial1 IS NULL THEN 'No' ELSE 'Yes' END AS [computedCol1], 
     CASE WHEN table3.serial2 IS NULL THEN 'No' ELSE 'Yes' END AS [computedCol2], 
     CASE WHEN table3.serial2 IS NULL OR table2.serial1 IS NULL THEN 'No' ELSE 'Yes' END AS [computedCol2] 
FROM table1 
     LEFT JOIN table2 
      ON table2.serial1 = table1.serial1 
     LEFT JOIN dbo.EPG 
      table3.serial2 = table1.serial2 
+0

解決了我自己的問題。請參閱第二塊代碼解決方案 – kev670

回答

0
  • table3.serial2 OR table2.serial1 IS NULL是不是你要找的條件。你需要table3.serial2 IS NULL OR table2.serial1 IS NULL
  • 您正嘗試使用相同的別名返回兩個不同的值[computedCol2]
+0

謝謝,但他們只是錯誤,當我重命名錶和東西張貼在這裏。編輯更能代表我現在擁有的東西。 – kev670