Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Общие вопросы по программированию, компьютерный форум
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.01.2023, 19:41   #1
Access54321
Новичок
Джуниор
 
Регистрация: 31.01.2023
Сообщений: 2
По умолчанию Где ошибка в sql-коде (запросе)? Запрос в Access.

SELECT TOP 3 department.parent_id AS Департамент, TOP 3 department.dep_name AS Управление, ROUND(avg(Datediff("yyyy",birthdate ,Date())+(Format(birthdate,"mmdd")> Format(Date(),"mmdd"))),0) AS Средний_возраст
FROM employee
LEFT JOIN department ON employee.dep_id = department.dep_id
GROUP BY department.parent_id, department.dep_name
HAVING department.dep_name IS NULL OR department.dep_name LIKE 'Управление *'
ORDER BY ROUND(avg(Datediff("yyyy",birthdate ,Date())+(Format(birthdate,"mmdd")> Format(Date(),"mmdd"))),0)
UNION
SELECT TOP 3 department.parent_id AS Департамент, TOP 3 department.dep_name AS Управление, ROUND(avg(Datediff("yyyy",birthdate ,Date())+(Format(birthdate,"mmdd")> Format(Date(),"mmdd"))),0) AS Средний_возраст
FROM employee
RIGHT JOIN department ON employee.dep_id = department.dep_id
GROUP BY department.parent_id, department.dep_name
HAVING department.dep_name IS NULL OR department.dep_name LIKE 'Управление *'
ORDER BY ROUND(avg(Datediff("yyyy",birthdate ,Date())+(Format(birthdate,"mmdd")> Format(Date(),"mmdd"))),0);

Задача: выгрузить топ-3 подразделения по среднему возрасту.
Может кто-то помочь без приложенного файла Access?

Последний раз редактировалось Access54321; 31.01.2023 в 19:45.
Access54321 вне форума Ответить с цитированием
Старый 31.01.2023, 20:09   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Код:
SELECT TOP 3 department.parent_id AS Департамент, TOP 3 department.dep_name AS Управление,....
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 31.01.2023, 20:22   #3
Access54321
Новичок
Джуниор
 
Регистрация: 31.01.2023
Сообщений: 2
По умолчанию

Цитата:
Сообщение от evg_m Посмотреть сообщение
Код:
SELECT TOP 3 department.parent_id AS Департамент, TOP 3 department.dep_name AS Управление,....
Думала об этом, пробовала так - не работает все-равно.

Причем, по отдельности вот так работает (см. ниже), но, когда объединяю через UNION LEFT и RIGHT JOINы, - выдает ошибку.

Вот это работает:
SELECT TOP 3 department.parent_id AS Департамент, department.dep_name AS Управление, ROUND(avg(Datediff("yyyy",birthdate ,Date())+(Format(birthdate,"mmdd")> Format(Date(),"mmdd"))),0) AS Средний_возраст
FROM employee
RIGHT JOIN department ON employee.dep_id = department.dep_id
GROUP BY department.parent_id, department.dep_name
ORDER BY ROUND(avg(Datediff("yyyy",birthdate ,Date())+(Format(birthdate,"mmdd")> Format(Date(),"mmdd"))),0) DESC


И вот это работает:
SELECT TOP 3 department.parent_id AS Департамент, department.dep_name AS Управление, ROUND(avg(Datediff("yyyy",birthdate ,Date())+(Format(birthdate,"mmdd")> Format(Date(),"mmdd"))),0) AS Средний_возраст
FROM employee
LEFT JOIN department ON employee.dep_id = department.dep_id
GROUP BY department.parent_id, department.dep_name
ORDER BY ROUND(avg(Datediff("yyyy",birthdate ,Date())+(Format(birthdate,"mmdd")> Format(Date(),"mmdd"))),0) DESC
Изображения
Тип файла: jpg Снимок2.JPG (34.6 Кб, 0 просмотров)

Последний раз редактировалось Access54321; 31.01.2023 в 20:26.
Access54321 вне форума Ответить с цитированием
Старый 01.02.2023, 09:08   #4
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

order by 3 написать ОДИН раз в конце
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
asp.net linq запрос в запросе (как то так) ogamilait C# (си шарп) 6 16.02.2015 20:59
Ошибка в запросе к БД Access Tanzor69 БД в Delphi 5 17.04.2013 09:47
not null в запросе в коде пхп Golovastik PHP 4 17.07.2010 16:44
Ошибка в коде Exel to Access infog Microsoft Office Access 4 15.10.2009 20:02
Ошибка в запросе к БД Access Vit@L БД в Delphi 8 26.09.2009 18:22