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

Откуда:
Сообщений: 1181
например

select * from person as p,polis as pol where p.id=pol.id



как исключить дубли ФИО ? Подскажите
23 июл 13, 13:50    [14604048]     Ответить | Цитировать Сообщить модератору
 Re: Исключить дубли в запросе  [new]
StarikNavy
Member

Откуда: Москва
Сообщений: 2407
ssaich
например
как исключить дубли ФИО ? Подскажите


distinct
23 июл 13, 13:52    [14604059]     Ответить | Цитировать Сообщить модератору
 Re: Исключить дубли в запросе  [new]
angel_zar
Member

Откуда: Барнаул
Сообщений: 902
тынц
Пункт 6ть выполните, а так не понятно.
Может просто Distinct, но скорее всего не то
23 июл 13, 13:52    [14604060]     Ответить | Цитировать Сообщить модератору
 Re: Исключить дубли в запросе  [new]
iap
Member

Откуда: Москва
Сообщений: 47083
ssaich
например

select * from person as p,polis as pol where p.id=pol.id




как исключить дубли ФИО ? Подскажите
По какому принципу оставить?
23 июл 13, 13:59    [14604128]     Ответить | Цитировать Сообщить модератору
 Re: Исключить дубли в запросе  [new]
Cygapb-007
Member

Откуда:
Сообщений: 1677
;with 
Person as (select * from (values
	(1,'pers1')
	)temp_Person(id,fio)),
Polis as (select * from (values
	(1,'code1'),(1,'code2')
	)temp_Polis(idp,code))
select * 
from Person p
cross apply (
   select case when ROW_NUMBER()over(order by o.idp) = 1 then p.fio else '' end fio, *
   from Polis o
   where o.idp=p.id
   ) c
idfiofioidpcode
1pers1pers11code1
1pers11code2
23 июл 13, 14:00    [14604145]     Ответить | Цитировать Сообщить модератору
 Re: Исключить дубли в запросе  [new]
ssaich
Member

Откуда:
Сообщений: 1181
iap
ssaich
например

select * from person as p,polis as pol where p.id=pol.id




как исключить дубли ФИО ? Подскажите
По какому принципу оставить?


В данном случае не важно, нужно просто вытащить из таблицы информацию убрав ивановых петровых и сидоровых коих в таблице по 3-4 одинаковых
23 июл 13, 14:15    [14604289]     Ответить | Цитировать Сообщить модератору
 Re: Исключить дубли в запросе  [new]
iap
Member

Откуда: Москва
Сообщений: 47083
ssaich
iap
пропущено...
По какому принципу оставить?


В данном случае не важно, нужно просто вытащить из таблицы информацию убрав ивановых петровых и сидоровых коих в таблице по 3-4 одинаковых
Пронумеровать внутри одинаковых ФИО ROW_NUMBER()ом,
выбрать только с номером 1
23 июл 13, 14:17    [14604306]     Ответить | Цитировать Сообщить модератору
 Re: Исключить дубли в запросе  [new]
ssaich
Member

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

SELECT * FROM POLIS as p,person as per,docums as doc where p.id_person=per.id_person and p.id_person=doc.id_person
23 июл 13, 14:20    [14604321]     Ответить | Цитировать Сообщить модератору
 Re: Исключить дубли в запросе  [new]
iap
Member

Откуда: Москва
Сообщений: 47083
SELECT TOP(1) WITH TIES *
FROM POLIS p
JOIN person per ON p.id_person=per.id_person 
JOIN docums doc ON p.id_person=doc.id_person
ORDER BY ROW_NUMBER()OVER(PARTITION BY per.FIO ORDER BY(SELECT 0));
23 июл 13, 14:35    [14604446]     Ответить | Цитировать Сообщить модератору
 Re: Исключить дубли в запросе  [new]
ssaich
Member

Откуда:
Сообщений: 1181
iap
SELECT TOP(1) WITH TIES *
FROM POLIS p
JOIN person per ON p.id_person=per.id_person 
JOIN docums doc ON p.id_person=doc.id_person
ORDER BY ROW_NUMBER()OVER(PARTITION BY per.FIO ORDER BY(SELECT 0));


Хм.. интересно, спасибо
23 июл 13, 14:47    [14604533]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить