powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как переделать скрипт?
2 сообщений из 2, страница 1 из 1
Как переделать скрипт?
    #39868804
ally-a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Надо сделать скрипт, который ищет сотрудников, которые выполняли заказы только с однотипными компонентами, т.е. если в заказе только принтеры, то сотрудник выводится.
Придумал вот такой громадный ужас, кажется, что этот запрос неправильно работает. Посоветовали переделать с помощью EXISTS/NOT EXISTS, только как?

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
SELECT * FROM Сотрудник 
INNER JOIN Заказ ON Сотрудник.Код_сотрудника = Заказ.Код_сотрудника
WHERE Заказ.Номер_заказа  in 
(
SELECT Содержимое_заказа.Номер_заказа
FROM Содержимое_заказа
where Номер_заказа in
	(SELECT Номер_заказа 
	FROM Содержимое_заказа 
	GROUP BY Номер_заказа 
	HAVING COUNT(Номер_заказа)>1) and Код_компонента in
		(SELECT Компоненты.Код_компонента
		FROM Компоненты
		WHERE Компоненты.Тип_компонента in 
			(SELECT Компоненты.Тип_компонента
			FROM Компоненты
			GROUP BY  Компоненты.Тип_компонента
			HAVING COUNT(Компоненты.Тип_компонента)>1)) 
	OR Номер_заказа in 
			(SELECT Код_сотрудника FROM Заказ 
			WHERE Номер_заказа in 
				(SELECT Номер_заказа FROM Содержимое_заказа 
				GROUP BY Номер_заказа 
				HAVING COUNT(Номер_заказа)=1))
)
...
Рейтинг: 0 / 0
Как переделать скрипт?
    #39868925
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
select
 *
from
 Сотрудник a
where
 not exists(
  select
   *
  from
   Заказ b join
   Содержимое_заказа c on c.Номер_заказа = b.Номер_заказа join
   Компоненты d on d.Код_компонента = c.Код_компонента
  where
   b.Код_сотрудника = a.Код_сотрудника
  group by
   b.Номер_заказа
  having
   count(distinct d.Тип_компонента) > 1
 );
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как переделать скрипт?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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