2 таблицы: яблоки и апельсины. Каждый из них имеет одинаковую структуру - 2 столбца: Продукт и Цена.
Думая о ней как о диаграмме Венна в 3 примерно равных частях. Таким образом, яблоки и апельсины имеют примерно одну треть данных - по крайней мере, на уровне продукта. Есть небольшое количество записей, в которых названия Продуктов одинаковы, но Цены разные, поэтому они естественным образом проскальзывают через UNION и создают для этих Продуктов 2 строки.
Теперь мне просто интересно, как изменитьзапрос UNION, так что в тех случаях, когда Продукт такой же, но Цены разные, он просто использует Apples.Price в качестве единственной цены.
Будет использовать этот UNION для присоединения к другой таблице, т.е.
WITH CTE AS
(
SELECT * FROM #Apples
UNION
SELECT * FROM #Oranges
)
SELECT * FROM CTE c INNER JOIN Map m
ON c.Product = m.Product
Примеры результатов объединения:
|---------------------|------------------|
| PRODUCT | PRICE |
|---------------------|------------------|
| Jeans | 50 | --from Apples
|---------------------|------------------|
| Car | 7500 | --from Oranges
|---------------------|------------------|
| Phone | 600 | --from Apples
|---------------------|------------------|
| Phone | 625 | --from Oranges
В идеале нужно всего 3 строки, в которых возвращается значение «Телефон на 600».