2013-11-13 3 views
0

Запрос, содержащий СОЮЗ двух ВЫБОРОВ, которые содержат столбцы LOCATION_ID, STREET_ADDRESS, CITY, COUNTRY_NAME и «No of Depts». Результатом должен быть список ВСЕХ местоположений с количеством отделений в этом месте. Список должен быть заказан от наивысшего до самого низкого количества отделов.Запрос, содержащий СОЕДИНЕНИЕ двух ВЫБОРОВ

SELECT locations.location_id, 
     locations.street_address, 
     locations.city, 
     locations.country_id 
FROM locations,departments 
WHERE (locations.location_id = departments.location_id) 
GROUP BY locations.location_id, 
     locations.street_address, 
     locations.city, 
     locations.country_id 
UNION ALL 
SELECT Count(departments.department_name) 
FROM departments 
WHERE (locations.location_id = departments.location_id) 
GROUP BY departments.department_id, departments.location_id 
ORDER BY (departments.department_name) DESC;` 
+0

У меня есть код с кодом! im используя базу данных Oracle HR! – user2985600

+2

И ошибка будет? –

+2

Union all работает только в том случае, если оба запроса имеют одинаковые столбцы, у вас есть два запроса, которые совершенно разные. Union все просто добавляет строки из двух запросов вместе, кажется, вам нужен дополнительный столбец. Вы должны включить это в свой первый оператор SELECT. – oerkelens

ответ

1

Почему это не работает?

SELECT count() as c, 
     departments.department_name, 
     locations.location_id, 
     locations.street_address, 
     locations.city, 
     locations.country_id 
    FROM locations 
    join departments ON locations.location_id = departments.location_id 
    GROUP BY departments.department_name, locations.location_id, locations.street_address, locations.city, locations.country_id 
+0

Union все работает, если у меня одинаковое количество столбцов? поэтому в моем случае у меня есть 4 столбца, выбранных в первом предложении select, и только один во втором предложении select! так это причина, по которой у меня есть эррос? – user2985600

+0

и как им следует выбрать LOCATION_ID, STREET_ADDRESS, CITY, который принадлежит таблице LOCATION и названию страны, принадлежащей таблице COUNTRY? – user2985600

+0

@ user2985600 - Я полностью не понимаю ваших требований. Это получает все поля, кроме страны, для этого просто присоединяйтесь к тому, что вы хотите .... – Hogan

Смежные вопросы