【问题标题】:SQL Server: how to combine Join and Where clause for this case?SQL Server:这种情况下如何结合 Join 和 Where 子句?
【发布时间】:2011-04-05 10:19:25
【问题描述】:

我有一个表引擎 (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 = '')

【问题讨论】:

    标签: sql-server join where-clause


    【解决方案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'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-22
      • 2021-09-29
      • 2011-10-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多