WHERE Дата = '2011-01-03';
может иметь повторные комбинации значений (Блюдо, Количество_порций), так как некоторые блюда в разные дни могли заказываться в одинаковом количестве. Однако если мы используем UNION в построении этого запроса, повторные комбинации будет устранены, что в дальнейшем, при вычислении выручки, приведет к ошибке. Для решения проблемы устранения повторяющихся строк необходимо использовать UNION ALL.
SELECT Блюдо, Количество_порций
FROM Заказы WHERE Дата = '2011-01-02'
UNION ALL
SELECT Блюдо, Количество_порций
FROM Заказы WHERE Дата = '2011-01-03';
Использование строк и выражений с UNION.
Иногда, можно вставлять константы и выражения в предложении SELECT используемые с UNION. Константы и выражения, которые будут использоваться, должны быть совместимы по типу. Эта свойство полезно, например, чтобы устанавливать комментарии, указывающие на то, какой запрос вывел данную строку.
Пример 40.
Необходимо сделать отчет о том, какие блюда наиболее и наименее популярны у клиентов (из тех блюд, которые заказывались). Мы можем объединить два запроса, вставив туда текст, чтобы различать вывод для каждого из них.
SELECT 'Наиболее популярное блюдо' , b.Блюдо, SUM(z.Количество_порций)
FROM Блюда b JOIN Заказы z ON b.ID_ Блюдо = z. Блюдо