SQL Server: как объединить предложения Join и Where для этого случая? - PullRequest
0 голосов
/ 05 апреля 2011

У меня есть стол движков (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 Ответ

1 голос
/ 05 апреля 2011

Похоже, мне нужно что-то вроде:

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'
...