SQL Server:如何在这种情况下结合Join和Where子句?

时间:2011-04-05 10:19:25

标签: sql-server join where-clause

我有一个表引擎(eball),一个有损坏的表(dv)和一个安装了服务产品(sp)的表。每台发动机可能有多种损坏和多种服务产品。

现在我想创建一个包含所有损坏的查询,其引擎信息以及是否安装了服务产品“Retrofit”,以及服务产品Retrofit的信息。

下面的我的SQL是错误的,因为我没有安装其他服务产品的损害赔偿。如果我不包括这个where子句,我会为每个安装了相同损坏的服务产品获得一行(等于损坏)???

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 个答案:

答案 0 :(得分: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'