powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Помогите пожалуйста решить задачу
5 сообщений из 5, страница 1 из 1
Помогите пожалуйста решить задачу
    #39643945
cglcz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть три таблицы:

CREATE TABLE departments (
id INT NOT NULL,
departments_name varchar (50) NULL,
PRIMARY KEY (id)
);



CREATE TABLE employees (
id int NOT NULL,
first_name varchar(50) NULL,
last_name varchar(50) NULL,
department_id int NULL,
salary money NULL,
PRIMARY KEY (id),
FOREIGN KEY (department_id) REFERENCES departments (id)
);



CREATE TABLE sales (
employee_id int NOT NULL,
sales_time datetime NOT NULL,
amount money NULL,
PRIMARY KEY (employee_id, sales_time),
FOREIGN KEY (employee_id) REFERENCES employees (id)
);


Условие задачи звучит так:
Вывести список названий отделов прибыль КАЖДОГО из сотрудников которого составляет больше 10000.

Я делаю так, но этот запрос выводит всех сотрудников, у кого зп больше 10000. А мне надо вывести только те отделы, в котором каждый из работающих сотрудников получает не меньше 10000, если есть хоть один кто получает меньше, то название этого отдела не выводить.

WITH Result AS
(SELECT dep.departments_name, emp.first_name, SUM(s.amount) AS Total_amount
FROM departments dep
LEFT JOIN employees emp
ON dep.id = emp.department_id
LEFT JOIN sales s
ON s.employee_id = emp.id
GROUP BY emp.first_name, dep.departments_name)
SELECT *
FROM Result
WHERE Total_amount > 10000;
...
Рейтинг: 0 / 0
Помогите пожалуйста решить задачу
    #39643947
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проще говоря, надо вывести отделы, в которых нет сотрудника с прибылью не больше 10000.
"Не существует" реализуется, например, предикатом NOT EXISTS().
И дополнительно проверить, что в отделе больше 0 сотрудников.
...
Рейтинг: 0 / 0
Помогите пожалуйста решить задачу
    #39643948
cglcz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
iap,
помогите чуть с селектом пожалуйста, че-то в голове уже такая каша, не могу все в кучу сложить
...
Рейтинг: 0 / 0
Помогите пожалуйста решить задачу
    #39643956
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cglcz,

Код: sql
1.
2.
3.
4.
5.
6.
select
 *
from
 departments d
where
 not exists(select 1 from employees where department_id = d.id and salary <= 10000);
...
Рейтинг: 0 / 0
Помогите пожалуйста решить задачу
    #39643962
cglcz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
invm, спасибо большое) Голова что-то не варит совсем
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Помогите пожалуйста решить задачу
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]