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

Откуда: Из лесу, вестимо.
Сообщений: 25
Сделал выборку двойников:
SELECT DocumentNumber AS [Номер], COUNT(*) AS [Количество]
FROM Patient
GROUP BY DocumentNumber
HAVING COUNT(*) > 1
ORDER BY DocumentNumber

и еще вот так
SELECT DocumentNumber AS [Номер]
FROM Patient
t WHERE (SELECT COUNT(*) FROM Patient WHERE DocumentNumber=t.DocumentNumber)>1

теперь мне нужно узнать PatientID FROM Patient этих номеров.
21 мар 13, 10:29    [14075874]     Ответить | Цитировать Сообщить модератору
 Re: Вывод дополнительной информации о выявленных двойниках.  [new]
aleks2
Guest
SELECT *
   FROM Patient P
   WHERE exists(SELECT * FROM Patient PP WHERE P.DocumentNumber=PP.DocumentNumber and P.PatientID<>P.PatientID   )
21 мар 13, 10:33    [14075883]     Ответить | Цитировать Сообщить модератору
 Re: Вывод дополнительной информации о выявленных двойниках.  [new]
Job1984
Member

Откуда: Из лесу, вестимо.
Сообщений: 25
Че то у меня ничего не получилось, надо наверное как котенка мордой ткнуть...
21 мар 13, 11:04    [14076045]     Ответить | Цитировать Сообщить модератору
 Re: Вывод дополнительной информации о выявленных двойниках.  [new]
iap
Member

Откуда: Москва
Сообщений: 47001
aleks2
SELECT *
   FROM Patient P
   WHERE exists(SELECT * FROM Patient PP WHERE P.DocumentNumber=PP.DocumentNumber and P.PatientID<>PP.PatientID   )
там опечатка
21 мар 13, 11:09    [14076079]     Ответить | Цитировать Сообщить модератору
 Re: Вывод дополнительной информации о выявленных двойниках.  [new]
Гость333
Member

Откуда:
Сообщений: 3683
Job1984
Че то у меня ничего не получилось, надо наверное как котенка мордой ткнуть...

"Ничего не получилось" — это сообщение об ошибке от SQL Server? Или результат выполнения некоего неведомого запроса?
21 мар 13, 11:10    [14076083]     Ответить | Цитировать Сообщить модератору
 Re: Вывод дополнительной информации о выявленных двойниках.  [new]
Job1984
Member

Откуда: Из лесу, вестимо.
Сообщений: 25
Все дошло, спасибо.
SELECT DocumentNumber AS [Номер], PatientID AS [ID]
FROM Patient P
WHERE (SELECT COUNT(*) FROM Patient WHERE DocumentNumber=P.DocumentNumber)>1

SELECT *
   FROM Patient P
   WHERE exists(SELECT * FROM Patient PP WHERE P.DocumentNumber=PP.DocumentNumber and P.PatientID<>P.PatientID)
21 мар 13, 11:11    [14076093]     Ответить | Цитировать Сообщить модератору
 Re: Вывод дополнительной информации о выявленных двойниках.  [new]
Job1984
Member

Откуда: Из лесу, вестимо.
Сообщений: 25
Гость333
Job1984
Че то у меня ничего не получилось, надо наверное как котенка мордой ткнуть...

"Ничего не получилось" — это сообщение об ошибке от SQL Server? Или результат выполнения некоего неведомого запроса?

Скорее второе
21 мар 13, 11:19    [14076149]     Ответить | Цитировать Сообщить модератору
 Re: Вывод дополнительной информации о выявленных двойниках.  [new]
iap
Member

Откуда: Москва
Сообщений: 47001
Job1984
Все дошло, спасибо.
SELECT DocumentNumber AS [Номер], PatientID AS [ID]
FROM Patient P
WHERE (SELECT COUNT(*) FROM Patient WHERE DocumentNumber=P.DocumentNumber)>1

SELECT *
   FROM Patient P
   WHERE exists(SELECT * FROM Patient PP WHERE P.DocumentNumber=PP.DocumentNumber and P.PatientID<>P.PatientID)
Что дошло-то?
Когда выполняется P.PatientID<>P.PatientID, интересно?
21 мар 13, 11:19    [14076153]     Ответить | Цитировать Сообщить модератору
 Re: Вывод дополнительной информации о выявленных двойниках.  [new]
Job1984
Member

Откуда: Из лесу, вестимо.
Сообщений: 25
И это тоже, епрст, я 10 лет запросов не писал, так что это мои первые запросы, не надо наезжать(строго судить).
Вот курю потиху доки.
21 мар 13, 12:03    [14076452]     Ответить | Цитировать Сообщить модератору
 Re: Вывод дополнительной информации о выявленных двойниках.  [new]
iap
Member

Откуда: Москва
Сообщений: 47001
Job1984
И это тоже, епрст, я 10 лет запросов не писал, так что это мои первые запросы, не надо наезжать(строго судить).
Вот курю потиху доки.
Я Вам зря картинку разукрашивал что ли? Прямо детский сад какой-то!
21 мар 13, 12:11    [14076499]     Ответить | Цитировать Сообщить модератору
 Re: Вывод дополнительной информации о выявленных двойниках.  [new]
Job1984
Member

Откуда: Из лесу, вестимо.
Сообщений: 25
Походу зря...не знаю что там когда выполняется, но результат выполнения вот этого запроса меня устраивает, пока...
SELECT  PatientID AS [ID], DocumentNumber AS [Номер], DocumentSeries AS [Серия], BirthDate AS [Дата рождения], LastName AS [Фамилия], 
        FirstName AS [Имя], Patronymic AS [Отчество]
  FROM Patient P
  WHERE (SELECT COUNT(*) FROM Patient WHERE DocumentNumber=P.DocumentNumber)>1
SELECT *
   FROM Patient P
   WHERE exists(SELECT * FROM Patient PP WHERE P.DocumentNumber=PP.DocumentNumber and P.PatientID<>PP.PatientID and 
                                               P.DocumentSeries<>PP.DocumentSeries and P.BirthDate<>PP.BirthDate and 
                                               P.LastName<>PP.LastName and P.FirstName<>PP.FirstName and P.Patronymic<>PP.Patronymic)
21 мар 13, 12:28    [14076608]     Ответить | Цитировать Сообщить модератору
 Re: Вывод дополнительной информации о выявленных двойниках.  [new]
iap
Member

Откуда: Москва
Сообщений: 47001
Job1984
Походу зря...не знаю что там когда выполняется, но результат выполнения вот этого запроса меня устраивает, пока...
SELECT  PatientID AS [ID], DocumentNumber AS [Номер], DocumentSeries AS [Серия], BirthDate AS [Дата рождения], LastName AS [Фамилия], 
        FirstName AS [Имя], Patronymic AS [Отчество]
  FROM Patient P
  WHERE (SELECT COUNT(*) FROM Patient WHERE DocumentNumber=P.DocumentNumber)>1
SELECT *
   FROM Patient P
   WHERE exists(SELECT * FROM Patient PP WHERE P.DocumentNumber=PP.DocumentNumber and P.PatientID<>PP.PatientID and 
                                               P.DocumentSeries<>PP.DocumentSeries and P.BirthDate<>PP.BirthDate and 
                                               P.LastName<>PP.LastName and P.FirstName<>PP.FirstName and P.Patronymic<>PP.Patronymic)
Не совсем зря - Вы же везде PP написали...
21 мар 13, 12:29    [14076618]     Ответить | Цитировать Сообщить модератору
 Re: Вывод дополнительной информации о выявленных двойниках.  [new]
Job1984
Member

Откуда: Из лесу, вестимо.
Сообщений: 25
Ну да, невнимательно я как то отнесся к происходящему, ссори.
21 мар 13, 12:39    [14076687]     Ответить | Цитировать Сообщить модератору
 Re: Вывод дополнительной информации о выявленных двойниках.  [new]
Добрый Э - Эх
Guest
select * 
  from (select t.*, count(1) over(partition by DocumentNumber) as cnt from Patient t) v
 where cnt > 1
21 мар 13, 13:02    [14076845]     Ответить | Цитировать Сообщить модератору
 Re: Вывод дополнительной информации о выявленных двойниках.  [new]
Job1984
Member

Откуда: Из лесу, вестимо.
Сообщений: 25
Добрый Э - Эх
select * 
  from (select t.*, count(1) over(partition by DocumentNumber) as cnt from Patient t) v
 where cnt > 1

Ну, здесь и сказать нечего, все что надо :)
21 мар 13, 13:53    [14077170]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить