Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 DISTINCT by one field  [new]
progproger
Member

Откуда:
Сообщений: 22
Есть такой запрос :

SELECT CAST(E.DesktopHtml AS NVARCHAR(MAX)),T.TabName,T.TabID FROM Tabs AS T

INNER JOIN Modules AS M ON T.TabID=M.TabID
INNER JOIN EnhancedHtml AS E ON M.ModuleID = E.ModuleID


Result например :

1. 'Text1', 'TabName1', 7777
2.'Text2', 'TabName1',7777
3.'Text3','TabName1',7777
4.'Text4','TabName2,8888
5.'Text5,'TabName2',8888
6.'Text6','TabName3',9999

Подскажите, как вывести только Distinct по TabName или TabID...(GROUP BY чет не помог) Чтоб результатом был:

1.'Text1','TabName1',7777
2.'Text4', 'TabName2',8888
3.'Text6','TabName3',9999

Спасибо заранее
29 окт 12, 16:58    [13392388]     Ответить | Цитировать Сообщить модератору
 Re: DISTINCT by one field  [new]
Konst_One
Member

Откуда:
Сообщений: 11600
может group by по TabName вас устроит?
29 окт 12, 17:01    [13392405]     Ответить | Цитировать Сообщить модератору
 Re: DISTINCT by one field  [new]
iap
Member

Откуда: Москва
Сообщений: 47085
progproger,

пронумеровать ROW_NUMBER()ом внутри групп, отфильтровать только строки с номером 1.
29 окт 12, 17:01    [13392412]     Ответить | Цитировать Сообщить модератору
 Re: DISTINCT by one field  [new]
Konst_One
Member

Откуда:
Сообщений: 11600
SELECT 
	MIN(CAST(E.DesktopHtml AS NVARCHAR(MAX))) as DesktopHtml,
	T.TabName,
	MIN(T.TabID) as TabID
FROM Tabs AS T
	INNER JOIN Modules AS M ON T.TabID=M.TabID
	INNER JOIN EnhancedHtml AS E ON M.ModuleID = E.ModuleID
GROUP BY T.TabName


результат именно тот , что вы показали
29 окт 12, 17:03    [13392418]     Ответить | Цитировать Сообщить модератору
 Re: DISTINCT by one field  [new]
progproger
Member

Откуда:
Сообщений: 22
Konst_One,

Большое вам спасибо!
29 окт 12, 17:13    [13392471]     Ответить | Цитировать Сообщить модератору
 Re: DISTINCT by one field  [new]
aleks2
Guest
progproger
Konst_One,

Большое вам спасибо!

С таким подходом - чо запросы то писать?

А если так?
1. 'Text1', 'TabName1', 7777
2.'Text2', 'TabName1',7779
3.'Text3','TabName1',7778
4.'Text4','TabName2,8889
5.'Text5,'TabName2',8888
6.'Text6','TabName3',9999
29 окт 12, 17:17    [13392498]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить