2011-04-05 22 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

を、「簡単に」:)私はdoublecheckますが、これは動作することである必要があります知っていました... – Werner