Мне нужно, чтобы этот запрос возвращал результаты даже для повторяющихся значений.
Пример запроса:
SELECT p.SKU
, p.UPC
, sw.ProductName
FROM [TGB_Production]..[view_TGB_FutureProducts] p
INNER JOIN [TGB_Production]..[TGB_Products_SupWoW] sw ON p.SKU = sw.SKU
INNER JOIN [TGB_Production]..[view_TGB_FutureProducts_SupWoW] fsw ON p.SKU = fsw.SKU
and p.SKU in ('1839006B', '1839006B', '1839006C')
ORDER BY p.SKU DESC
Текущий результат:
SKU UPC ProductName
1839006C xxx xxx
1839006B xxx xxx
Желаемый результат:
SKU UPC ProductName
1839006C xxx xxx
1839006B xxx xxx
1839006B xxx xxx
Я нашел аналогичный вопрос/ответ здесь, но у меня возникли проблемы с включением решения.
Результаты запроса SQL должны возвращать все записи в предложении WHERE, даже дубликаты
view_TGB_FutureProducts_SupWoW:
SKU SalePrice CanadianSalePrice Minimum UnitIncrements
1839006B 40.00 0.00 2 2
TGB_Products_SupWoW:
SKU ProductName SkuGroup
1839006B Boucle Sweater Duster GRP_1839006
view_TGB_FutureProducts:
SKU ProductName UPC
1839006B Boucle Sweater Duster 45765751839006
Используйте join
вместо in
:
SELECT p.SKU, p.UPC, sw.ProductName
FROM [TGB_Production]..[view_TGB_FutureProducts] p JOIN
[TGB_Production]..[TGB_Products_SupWoW] sw
ON p.SKU = sw.SKU JOIN
[TGB_Production]..[view_TGB_FutureProducts_SupWoW] fsw
ON p.SKU = fsw.SKU JOIN
(VALUES ('1839006B'), ('1839006B'), ('1839006C')
) v(SKU)
ON v.SKU = p.SKU
ORDER BY p.SKU DESC;
Если вы также хотите включить значения, которые есть в списке IN
, но не в исходных данных, вам нужно внешнее соединение.
Это может помочь:
SELECT tbl.SKU
, p.UPC
, sw.ProductName
FROM
(Select SKU FROM view_TGB_FutureProducts UNION
ALL
Select SKU FROM TGB_Products_SupWoW UNION ALL
Select SKU FROM view_TGB_FutureProducts_SupWoW
) tbl inner join
[TGB_Production]..[view_TGB_FutureProducts] p on p.Sku
= tbl.SKU
INNER JOIN [TGB_Production]..[TGB_Products_SupWoW]
sw ON tbl.SKU = sw.SKU
INNER JOIN [TGB_Production]..
[view_TGB_FutureProducts_SupWoW] fsw ON tbl.SKU =
fsw.SKU
and tbl.SKU in ('1839006B', '1839006B', '1839006C')
ORDER BY p.SKU DESC
Предоставьте образец входных данных для трех таблиц.