Запит з використанням UNION можна створити тільки в режимі SQL. В результаті роботи створюється вибірка, яка містить рядки, що вибирає як перша, так і друга інструкція Select. Синтаксис:
Інструкція SELECT
UNION [ALL]
Інструкція SELECT
[ORDER BY …]
Кількість стовпців в обох інструкціях SELECT повинна бути однаковою. Типи даних в стовпцях повинні бути ідентичними. Імена стовпців беруться з першої інструкції SELECT. Якщо вказаний предикат ALL, то будуть виведені всі рядки обох запитів, інакше співпадаючі рядки виводитися не будуть. Інструкцій SELECT може бути декілька, тоді треба вживати круглі дужки. Упорядкування ORDER BY можна використати єдиний раз після останньої інструкції, воно діє на всю вибірку. В ньому треба використовувати номери стовпців або їхні імена з першої вибірки.
Задача 5.10.Створити запит на об'єднання інформації про всі заробітки робітників з таблиці arhiv та відомості за вказаний рік з таблиці tzarobitok. Рік задавати як параметр.
Архівна таблиця arhiv (див. задачу 4.3) містить поля fio, tn та pidrozdil з таблиці tvidomі поля dat та zar з таблиці tzarobitok.Спочатку виберемо дані за вказаний рік і приєднаємо до них інформацію з таблиці arhiv. Однакові рядки повторюватися не будуть, тому що не вказаний предикат ALL.
PARAMETERS [Введіть рік] Short ;
SELECT tvidom.pidrozdil AS [Підрозділ], tvidom.fio AS [Прізвище],
tvidom.tn AS [Табельний номер], tzarobitok.dat AS [Дата],
tzarobitok.zar AS [Заробіток]
FROM tvidom INNER JOIN tzarobitok ON tvidom.tn = tzarobitok.tn
WHERE (((Year([tzarobitok.dat]))=[Введіть рік]))
UNION
SELECT arhiv.pidrozdil, arhiv.fio, arhiv.tn, arhiv.dat, arhiv.zar
FROM arhiv
ORDER BY [Підрозділ], [Прізвище] ;