Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
Andrea911 Member Откуда: Сообщений: 25 |
В целом, он делает то, что нужно, но, кажется, очень неоптимально... Не знаю, как ещё это можно сделать, может, здесь есть профессионалы, которые могут посоветовать что-нибудь?SELECT IT1.*, IT4.* FROM dbo.ITEM1 as IT1 JOIN dbo.ITEM1 as IT2 ON IT1.ID_Group=IT2.ID_Group JOIN dbo.ITEM2 as IT3 ON IT3.[Value]=IT2.[Value] JOIN dbo.ITEM2 as IT4 ON IT4.ID_Group=IT3.ID_Group AND IT4.[code]=IT1.Code WHERE IT1.ID_Group NOT IN (SELECT ID FROM [Group] WHERE ByGroup = 1) AND IT2.IsPrimary = 1 AND IT3.IsPrimary = 1 UNION SELECT IT1.*, IT4.* FROM dbo.ITEM1 as IT1 JOIN dbo.ITEM2 as IT4 ON IT4.ID_Group=IT1.ID_Group AND IT4.Code=IT1.Code WHERE IT1.ID_Group IN (SELECT ID FROM [Group] WHERE ByGroup = 1) ORDER BY IT1.Code Asc |
6 мар 17, 21:18 [20268813] Ответить | Цитировать Сообщить модератору |
Massa52 Member Откуда: Сообщений: 382 |
Andrea911, Не могу понять смысл(зачемэто надо) - таблица жоинтся саму на себя FROM dbo.ITEM1 as IT1 JOIN dbo.ITEM1 as IT2 ON IT1.ID_Group=IT2.ID_Group |
7 мар 17, 04:32 [20269352] Ответить | Цитировать Сообщить модератору |
Добрый Э - Эх
Guest |
Andrea911, уж лучше бы привел тестовый набор данных, желаемый результат на них и словесное объяснение, как из тестового набора получить желаемый результат. Чем постить запрос, который "делает то, что нужно, но, кажется, очень неоптимально"... |
7 мар 17, 05:45 [20269359] Ответить | Цитировать Сообщить модератору |
Владислав Колосов Member Откуда: Сообщений: 8350 |
В любом случае там две строчки лишние. |
7 мар 17, 11:32 [20270173] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |