2011-04-05 58 views
0

我有一個桌子引擎(eball),一個帶有損壞(dv)的桌子和一個安裝了服務產品(sp)的桌子。每個引擎可能有多種損害和多種服務產品。SQL Server:如何結合此案的Join和Where子句?

現在我想創建一個包含所有損害,其引擎信息以及安裝了服務產品「Retrofit」的查詢,服務產品Retrofit的信息。

以下我的SQL是錯誤的,因爲我沒有得到安裝了不同服務產品的損害。如果我不包括這個條款,我會得到相同損壞的每個服務產品的一排(等於損壞)?

SELECT * 
FROM 
dbo.EPI_EB2S_damage_report_v as dv 
LEFT OUTER JOIN dbo.EPI_all_v as eball ON dv.DB_NO = eball.DB_NO 
LEFT OUTER JOIN dbo.ServiceProducts sp ON dv.DB_NO = sp.DB_NO 
WHERE (sp.SERVICE_PRODUCT_NAME = 'Retrofit Pulse' OR sp.SERVICE_PRODUCT_NAME is NULL OR sp.SERVICE_PRODUCT_NAME = '') 

回答

1

它看起來那麼我像你需要沿着線的東西:

SELECT * FROM 
dbo.EPI_EB2S_damage_report_v as dv 
LEFT OUTER JOIN dbo.EPI_all_v as eball ON dv.DB_NO = eball.DB_NO 
LEFT OUTER JOIN dbo.ServiceProducts sp ON dv.DB_NO = sp.DB_NO AND sp.SERVICE_PRODUCT_NAME = 'Retrofit Pulse' 
+0

我明白了,就知道一定是「容易」 :)我會雙檢,但這會工作... – Werner 2011-04-05 10:35:40