0 / 0 / 0
Регистрация: 05.10.2016
Сообщений: 20
|
|
1 | |
Как создать запрос?11.12.2016, 16:28. Показов 1644. Ответов 19
Метки нет (Все метки)
Помогите написать запрос! Пожалуйста
Из страны с наибольшим количеством подразделений (департаментов) выбрать работника, у которого в подчинении больше всего человек. Если таких стран несколько, то найти такого работника для каждой из них. Создал такие таблицы в БД departments : manager_id, location_id, department_id employees: employee_id,department_id,manager_id locations: location_id,country_id
0
|
11.12.2016, 16:28 | |
Ответы с готовыми решениями:
19
Как создать запрос Как создать запрос в бд? Как создать запрос как создать запрос |
1040 / 856 / 335
Регистрация: 08.12.2016
Сообщений: 3,283
|
|
11.12.2016, 17:31 | 2 |
для начала со структурой определись:
если в подразделении может быть только один менеджер departments.manager_id, зачем работнику указывать и подразделение и менеджера? Ну и departments.manager_id это ссылка на employees.employee_id? или скрыл от нас ещё и managers? Добавлено через 6 минут и зачем locations? В задании этой сущности нет, почему не просто departments.country_id ?
1
|
0 / 0 / 0
Регистрация: 05.10.2016
Сообщений: 20
|
|
11.12.2016, 18:00 [ТС] | 3 |
departments : department_id, country_id
employees: employee_id,department_id, subordinates(количество подчиненных) если так создать?
0
|
1040 / 856 / 335
Регистрация: 08.12.2016
Сообщений: 3,283
|
|
11.12.2016, 18:32 | 4 |
employees: employee_id,department_id, subordinates(количество подчиненных)
нет количество подсчитывать будем, вопрос в другом, если менеджер в подразделении только один, а остальные работники подразделения ему подчиняются, то надо оставить departments.manager_id и убрать employees.manager_id а если подчиненность древовидная и подчиненный одному может быть менеджером у другого, тогда наоборот, надо оставлять employees.manager_id и убирать departments.manager_id.
1
|
0 / 0 / 0
Регистрация: 05.10.2016
Сообщений: 20
|
|
11.12.2016, 18:40 [ТС] | 5 |
Менеджеров несколько
0
|
1040 / 856 / 335
Регистрация: 08.12.2016
Сообщений: 3,283
|
||||||
11.12.2016, 19:09 | 6 | |||||
в одном подразделении их может быть несколько? тогда, естественно, атрибута departments.manager_id быть не может
Добавлено через 26 минут
1
|
0 / 0 / 0
Регистрация: 05.10.2016
Сообщений: 20
|
|
11.12.2016, 19:34 [ТС] | 7 |
0
|
1040 / 856 / 335
Регистрация: 08.12.2016
Сообщений: 3,283
|
||||||
11.12.2016, 19:50 | 8 | |||||
COUNT(*), конечно
Там сейчас все не верно, сорри, сейчас исправлю Добавлено через 14 минут попробуй так З.Ы. временные таблицы используются, чтобы результат запроса использовать несколько раз в качестве подзапроса
1
|
0 / 0 / 0
Регистрация: 05.10.2016
Сообщений: 20
|
|
11.12.2016, 20:11 [ТС] | 9 |
Неоднозначное имя столбца "country_id"
если изменить на d.country_id то запрос запустится но нечего не выведет( Добавлено через 3 минуты Столбец subordinates хранится только во временной таблице?
0
|
1040 / 856 / 335
Регистрация: 08.12.2016
Сообщений: 3,283
|
|
11.12.2016, 20:15 | 10 |
ну а
SELECT * FROM @Cnt SELECT * FROM @Tmp чего-нибудь выдают? Я же не на данных запросы писал, мог чего-то и не заметить Добавлено через 1 минуту да, это же Count(*) при подсчете подчиненных из employees Добавлено через 1 минуту Ладно, в моих местах уже три ночи, я - спать, дальше пока сам
1
|
0 / 0 / 0
Регистрация: 05.10.2016
Сообщений: 20
|
|
11.12.2016, 20:17 [ТС] | 11 |
Не находит эти таблицы
Добавлено через 15 секунд Ладно спасибо)))
0
|
0 / 0 / 0
Регистрация: 05.10.2016
Сообщений: 20
|
|
11.12.2016, 20:56 [ТС] | 12 |
в TMP нечего нет
0
|
1040 / 856 / 335
Регистрация: 08.12.2016
Сообщений: 3,283
|
||||||
12.12.2016, 01:05 | 13 | |||||
проверь данные, у меня всё на месте
1
|
0 / 0 / 0
Регистрация: 05.10.2016
Сообщений: 20
|
|
12.12.2016, 09:03 [ТС] | 14 |
Почему-то все равно не работает
0
|
1040 / 856 / 335
Регистрация: 08.12.2016
Сообщений: 3,283
|
|
12.12.2016, 09:11 | 15 |
покажи своих employees
Добавлено через 2 минуты там менеджеры то есть вообще? SELECT * FROM employees e JOIN employees m ON e.manager_id = m.employee_id
1
|
0 / 0 / 0
Регистрация: 05.10.2016
Сообщений: 20
|
|
12.12.2016, 09:21 [ТС] | 16 |
Как-то так
0
|
1040 / 856 / 335
Регистрация: 08.12.2016
Сообщений: 3,283
|
|
12.12.2016, 09:30 | 17 |
это разве не мои данные из #13? С ними и запросом, приведенным в #13 и результаты должны быть как в #13
Добавлено через 1 минуту тогда в INSERT INTO @Tmp SELECT d.country_id, e.manager_id, COUNT(*) subordinates FROM (SELECT country_id FROM @Cnt WHERE Cnt = (SELECT MAX(Cnt) FROM @Cnt)) md /* страны с наибольшим количеством подразделений */ JOIN departments d ON d.country_id = md.country_id /* а это подразделения в этих странах */ JOIN employees e ON e.department_id = d.department_id JOIN employees m ON e.manager_id = m.employee_id /* а это все менеджеры и их подчиненные */ GROUP BY d.country_id, e.manager_id заменяем JOIN на JEFT JOIN и смотрим где соединение таблиц не происходит
1
|
0 / 0 / 0
Регистрация: 05.10.2016
Сообщений: 20
|
|
12.12.2016, 09:35 [ТС] | 18 |
Все данные как у вас, нечего не изменял
Добавлено через 3 минуты manager_id везде NULL выводит при LEFT JOIN
0
|
1040 / 856 / 335
Регистрация: 08.12.2016
Сообщений: 3,283
|
|
12.12.2016, 09:39 | 19 |
Сообщение было отмечено Tarragorn как решение
Решение
тогда откуда в #14 contry_Id = 12...33? У нас порядок полей в таблице departments разный)
Добавлено через 4 минуты то, что у меня страны, у тебя - подразделения, и наоборот
1
|
0 / 0 / 0
Регистрация: 05.10.2016
Сообщений: 20
|
|
12.12.2016, 09:52 [ТС] | 20 |
0
|
12.12.2016, 09:52 | |
12.12.2016, 09:52 | |
Помогаю со студенческими работами здесь
20
Как создать запрос? Как создать запрос Как создать запрос Как создать запрос на выход Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи | |||||
Как написать микросервис на Go/Golang с Kafka и GitHub CI/CD
InfoMaster 14.01.2025
Определение микросервиса, преимущества использования Go/ Golang
Микросервис – это архитектурный подход к разработке программного обеспечения, при котором приложение состоит из небольших, независимо. . .
|
Как написать микросервис с нуля на C# с RabbitMQ, CQRS и CI/CD
InfoMaster 14.01.2025
В современном мире разработки программного обеспечения микросервисная архитектура стала стандартом де-факто для создания масштабируемых и гибких приложений. Этот архитектурный подход предполагает. . .
|
Как создать интернет-магазин на PHP и JavaScript
InfoMaster 14.01.2025
В современном мире электронная коммерция стала неотъемлемой частью бизнеса. Создание собственного интернет-магазина открывает широкие возможности для предпринимателей, позволяя достичь большей. . .
|
Как написать Тетрис на Ассемблере
InfoMaster 14.01.2025
Тетрис – одна из самых узнаваемых и популярных компьютерных игр, созданная в 1984 году советским программистом Алексеем Пажитновым. За прошедшие десятилетия она завоевала симпатии миллионы людей по. . .
|
Как создать игру "Танчики" на Unity3d и C#
InfoMaster 14.01.2025
Разработка игр – это увлекательный процесс, сочетающий в себе творчество и технические навыки. В этой статье мы рассмотрим создание классической игры "Танчики" с использованием Unity3D и языка. . .
|
Организую платный онлайн микро-курс по доработке Android-клиента Telegram
_Ivana 14.01.2025
Официальная версия и распространенные форки не полностью устраивают? Сделай свою кастомную версию клиента!
4 занятия по 2 часа (2 недели пн, ср 19:00-21:00 по Москве).
Первое вводное занятие. . .
|
Как создать приложение для фитнеса для iOS/iPhone на Kotlin
InfoMaster 14.01.2025
Создание собственного фитнес-приложения — это не только захватывающий, но и полезный процесс, ведь оно может стать вашим верным помощником на пути к здоровому и активному образу жизни. В современных. . .
|
Как создать приложение магазина для iOS/iPhone на Swift
InfoMaster 14.01.2025
Введение в разработку iOS-приложений
Разработка приложений для iPhone и других устройств на базе iOS открывает огромные возможности для создания инновационных мобильных решений. В данной статье мы. . .
|
Это работает. Скорость асинхронной логики велика. Вопрос видимо останется в стабильности. Плата - огонь!
Hrethgir 13.01.2025
По прошлому проекту в Logisim Evolution https:/ / www. cyberforum. ru/ blogs/ 223907/ blog8781. html прилагаю файл архива проекта в Gowin Eda. Восьмибитный счётчик из сумматора+ генератор сигнала. . .
|
UserScript для подсветки кнопок языков программирования в зависимости от текущего раздела
volvo 13.01.2025
В результате работы этого скрипта подсвечиваются нужные кнопки не только в форме быстрого ответа, но и при редактировании сообщения:
/ / ==UserScript==
/ / @name CF_DefaultLangSelect
/ / . . .
|
Введение в модели и алгоритмы машинного обучения
InfoMaster 12.01.2025
Машинное обучение представляет собой одну из наиболее динамично развивающихся областей искусственного интеллекта, которая фокусируется на разработке алгоритмов и методов, позволяющих компьютерам. . .
|
Как на Python создать нейросеть для решения задач
InfoMaster 12.01.2025
В контексте стремительного развития современных технологий особое внимание уделяется таким инструментам, как нейросети. Эти структуры, вдохновленные биологическими нейронными сетями, используются для. . .
|