Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.01.16;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.009 c
14-49705
Undert
2003-12-25 23:19
2004.01.16
Windows 1.1


14-49681
Goblin
2003-12-26 12:15
2004.01.16
В паскале нет функции копирования файлов?


9-49379
craker
2003-07-04 16:11
2004.01.16
Есть идея, нет людей.....


11-49474
Denis Myasnichenko
2003-04-30 10:49
2004.01.16
KOL && инициализация


1-49500
Gnom
2004-01-03 17:30
2004.01.16
редактирование текста





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский