powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Переписать запрос
9 сообщений из 9, страница 1 из 1
Переписать запрос
    #40087546
maay123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
SELECT	c.CategoryName,p.ProductName,
	SUM(od.Quantity) AS [Qua],
	COUNT(o.OrderID) as c ,
	ROW_NUMBER() OVER(PARTITION BY c.CategoryName ORDER BY SUM(od.Quantity) DESC) AS [row]
FROM	Products p
LEFT JOIN Categories c ON c.CategoryID = p.CategoryID
LEFT JOIN Suppliers s ON s.SupplierID = p.SupplierID
LEFT JOIN	(
		Orders o INNER JOIN [Order Details] od
		ON o.OrderID = od.OrderID
		AND YEAR(o.OrderDate) = 1997
		)
ON p.ProductID = od.ProductID
AND s.Fax IS NOT NULL
GROUP BY c.CategoryName,p.ProductName



Хочу уточнить и узнать как правильно данный запрос переписать без JOIN , написать его подзапросом
Спасибо с уважением Владимир!
...
Рейтинг: 0 / 0
Переписать запрос
    #40087548
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maay123
Хочу уточнить и узнать как правильно данный запрос переписать без JOIN , написать его подзапросом
Не уверен, что слово "уточнить" тут подходит.
Что тут думать, раз препод сказал "подзапросом", значит, в запросе будет единственная таблица Products, а вместо остальных полей пишите подзапросы.
...
Рейтинг: 0 / 0
Переписать запрос
    #40087552
maay123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
"Уточнить" думаю подходящее было так как к этому времени я получил данный ответ((должен был сравнить чужое и свое и взять лудшее...))
Спасибо за заумный ответ (( на данный момент я сам себе "препод" )), спасибо что уделили время.
Цитирую "препод" : "В данной сфере вы лучше меня знаете что если самому не заниматься то ни какой "препод" не поможет,
а так у меня была цель переписать данный запрос подзапросом"
Спасибо что назвали меня "преподом" который сам себе ставит зачади и их решает
alexeyvg,
...
Рейтинг: 0 / 0
Переписать запрос
    #40087584
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maay123,

без join никак, подзапрос все равно будет входить в выражение join.

Код: sql
1.
2.
3.
4.
5.
LEFT JOIN	(
		SELECT od.OrderID, od.ProductID, od.Quantity FROM Orders o INNER JOIN [Order Details] od
		ON o.OrderID = od.OrderID
		AND YEAR(o.OrderDate) = 1997
		) od ON p.ProductID = od.ProductID



план выполнения, скорее всего, будет таким же. Бесполезная переделка.
...
Рейтинг: 0 / 0
Переписать запрос
    #40087610
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maay123
"Уточнить" думаю подходящее было так как к этому времени я получил данный ответ((должен был сравнить чужое и свое и взять лудшее...))
Спасибо за заумный ответ (( на данный момент я сам себе "препод" )), спасибо что уделили время.
Цитирую "препод" : "В данной сфере вы лучше меня знаете что если самому не заниматься то ни какой "препод" не поможет,
а так у меня была цель переписать данный запрос подзапросом"
Спасибо что назвали меня "преподом" который сам себе ставит зачади и их решает
alexeyvg,


Лудшее из потока сознания без запятых
...
Рейтинг: 0 / 0
Переписать запрос
    #40087623
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг Хупин
Лудшее из потока сознания без запятых
Как, а в конце текста запятую не видите? :-)

Владислав Колосов
без join никак
Разве никак? Вместо каждого поля из списка полей в SELECT пишите подзапрос, что этому мешает?
Нумерацию можно сделать, взяв всё это в подзапрос, и пронумеровав уровнем выше. Там же наложить условие Fax IS NOT NULL, а так же группировку.
Владислав Колосов
план выполнения, скорее всего, будет таким же
Задача - что бы поиском в тексте нельзя было найти слово join. Не какая то другая.
...
Рейтинг: 0 / 0
Переписать запрос
    #40087625
Фотография vikkiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvg
что этому мешает?
"здравый смысл" как одну из причин наверное не будем предлагать.
...
Рейтинг: 0 / 0
Переписать запрос
    #40087662
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vikkiv
alexeyvg
что этому мешает?
"здравый смысл" как одну из причин наверное не будем предлагать.
Само собой. Исходя из задачи: "что бы поиском в тексте нельзя было найти слово join", здравый смысл в этой ветке не упоминаем :-)
...
Рейтинг: 0 / 0
Переписать запрос
    #40087668
godsql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
1.если null не важны (left join), можно переписать через перечисление датасетов, а условия соединения в where
2. можно попробовать через outer apply
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Переписать запрос
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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