2015-05-06 45 views
0

我試圖使用SQL Server 2012,以獲得在一個表我的網頁上的一些數據,但我有一個很難寫我的SELECT查詢。 這是我到目前爲止有:抓取所有數據時「WHERE語句」可以包含空SQL服務器2012

SELECT DISTINCT a.Id_972 Id, 
       a.Datum_972 Date, 
       a.Omschrijving_972 Title, 
       a.Bedrag_972 Amount, 
       b.OmschrN_977 Type, 
       c.OmschrKN_976 Project, 
       d.Status_975 Status  
FROM WebOnkosten_972 AS a, 
    WebOnkostenType_977 AS b, 
    WebOnkostenProject_976 AS c, 
    WebOnkostenToestand_975 AS d  
WHERE a.Type_972 = b.Type_977' AND 
     a.Project_972 = c.ProjectNR_976 AND 
     a.Id_972 = d.IdOnkost_975 

這種直截了當的選擇查詢得到的數據像它應該,但它不是正是我想要的

我可是從表「C」取我的項目名稱與

表「A」的ID。在這裏,我的問題是,它是POS說項目可能是空值。但我仍然想要獲得每一個記錄。我想在一個表格中顯示這些數據。我想要一個單元格,其中項目在數據庫中爲空。我明白爲什麼這個查詢不會給我記錄表a中的projectId爲null的記錄。但我找不到一種方法來實現它。

任何人都可以幫助我嗎? 對不起我的不完美的英語和一個壞頭銜。我真的不知道該說什麼。

+1

哪一部分可以爲空?我想你想使用'(左)外部連接'。 – eckes

回答

0

如果你的意思是有在表中的記錄「一」沒有在表中「C」的匹配,然後更改FROM子句左聯接。

例如:

SELECT A.PK, B.PK 
FROM A 
LEFT JOIN B ON a.pk = b.pk 

這將帶來從表 'A' 的所有記錄。對於表B中的每個匹配,結果集將顯示(A.pk,B.pk)。 對於沒有匹配每個A.pk,結果集將顯示(A.pk,NULL)