Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.01.16;
Скачать: CL | DM;

Вниз

SQL   Найти похожие ветки 

 
MakNik ©   (2003-12-19 10:29) [0]

Подскажите, плз., как заставить такой запрос работать?
Select ID, MAX(Cr.DateCreateCard) from Cards Cr
Group by CR.INN


 
Johnmen ©   (2003-12-19 10:29) [1]

Select ID, MAX(Cr.DateCreateCard) from Cards Cr
Group by ID


 
Silver Alex ©   (2003-12-19 10:35) [2]

на выбор :)

Select CR.INN , MAX(Cr.DateCreateCard) from Cards Cr
Group by CR.INN


 
MakNik ©   (2003-12-19 10:40) [3]


> Johnmen © (19.12.03 10:29) [1]

Есть таблица:
ID DateCreateCard INN
------------------------
1 12.12.2003 123
2 13.12.2003 123
3 12.12.2003 222
4 11.12.2003 222
5 15.12.2003 123
...

Нужно получить: ID-ку записи с максимальной датой для каждого набора с одинаковым INN. т.е получить след.:

ID DateCreateCard INN
------------------------
3 12.12.2003 222
5 15.12.2003 123


 
Sandman25 ©   (2003-12-19 10:45) [4]

select id from cards c1 where not exists
(select 1 from cards c2 where c1.inn=c2.inn
and c1.DateCreateCard < c2.DateCreateCard)


 
Плохиш_   (2003-12-19 10:46) [5]

>MakNik © (19.12.03 10:40) [3]

Так ты над своим селектом логически по-мысли ;-)

Select ID from Cards where
DateCreateCard = (select MAX(DateCreateCard) from Cards
Group by INN)


 
Sandman25 ©   (2003-12-19 10:49) [6]

[5] Плохиш_ (19.12.03 10:46)

DateCreateCard не уникальное поле.


 
Johnmen ©   (2003-12-19 10:52) [7]

Примерно так
SELECT
(SELECT T1.ID FROM Table T1 WHERE T2.ID=T1.ID) IDD,
MAX(T2.DateCreateCard),
T2.INN
FROM Table T2
GROUP BY T2.INN


 
Sandman25 ©   (2003-12-19 10:53) [8]

select id from cards c1 where DateCreateCard =
(select max(DateCreateCard) from cards c2 where c1.inn=c2.inn)


 
MakNik ©   (2003-12-19 10:55) [9]


> Sandman25 © (19.12.03 10:49) [6]

Спасибо, работает!!!


 
Sandman25 ©   (2003-12-19 10:56) [10]

[7] Johnmen © (19.12.03 10:52)

У меня на это ругается The column idd must be in the group by list


 
Плохиш_   (2003-12-19 10:58) [11]

>Sandman25 © (19.12.03 10:49) [6]

:-( Поторопился и забыл

Select c1.ID from Cards c1 where
c1.DateCreateCard =
(select MAX(DateCreateCard) from Cards c2
where c2.ID=c1.ID
Group by INN)


 
Sandman25 ©   (2003-12-19 10:58) [12]

[9] MakNik © (19.12.03 10:55)

Кстати, если таких строк (с максимальной датой)для одного inn несколько, то можно поставить извлечение только одной из них.

select id from cards c1 where not exists
(select 1 from cards c2 where c1.inn=c2.inn
and c1.DateCreateCard <= c2.DateCreateCard and c1.id < c2.id)


 
Sandman25 ©   (2003-12-19 11:00) [13]

[11] Плохиш_ (19.12.03 10:58)

where c2.ID=c1.ID

?

Я уже написал правильную версию в [8]. Сделал на основе Вашей идеи.


 
Sandman25 ©   (2003-12-19 11:07) [14]

[12] Sandman25 © (19.12.03 10:58)

Лучше игнорировать. Слишком медленно работает :(


 
Johnmen ©   (2003-12-19 11:10) [15]

>Sandman25 ©

Да. Мой набросок некорректен...:)
Отчасти потому, что может быть более одного id за одну дату с одним inn...


 
Sandman25 ©   (2003-12-19 11:13) [16]

[15] Johnmen © (19.12.03 11:10)

На примере таких задач начинаю понимать, что языку SQL есть куда расти. Вроде бы примитивнейшая операция, а нормально не указать :(


 
Shirson ©   (2003-12-19 11:21) [17]

IMHO, это нам есть куда расти. :)


 
Sandman25 ©   (2003-12-19 11:24) [18]

[17] Shirson © (19.12.03 11:21)

Тоже верно :)



Страницы: 1 вся ветка

Текущий архив: 2004.01.16;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.038 c
1-49541
Ruba
2004-01-02 15:33
2004.01.16
Как перевести string в математическое выражение?


14-49765
Кен
2003-12-23 01:48
2004.01.16
Как или какой программой можно реализовать защиту от спама путём


14-49685
Vlad Oshin
2003-12-26 12:48
2004.01.16
Хочу поставить D7, но у меня есть D5, конфликт возможен?


4-49806
Johnson
2003-11-10 18:45
2004.01.16
Как наити нужную программу???


3-49464
TATIANA
2003-12-17 15:28
2004.01.16
ДОБАВИТЬ ГРАФИЧЕСКОЕ ИЗОБРАЖЕНИЕ В BLOB-поле