Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / SQLite [игнор отключен] [закрыт для гостей] / SQL запрос с "group by", получить первое значение поля ... / 5 сообщений из 5, страница 1 из 1
13.04.2011, 13:40
    #37214062
potkin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL запрос с "group by", получить первое значение поля ...
Здравствуйте !!!

Есть таблица:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
RuhCinCapSub
(
  `RuhCinCapSubID` INTEGER PRIMARY KEY AUTOINCREMENT, 
  `DirectoryCinostID` INTEGER NOT NULL,
  `ZALP` decimal( 10 , 2 ) NOT NULL DEFAULT '0.00',
  ...
)

Надо построить запрос, сгруппировав по полю "DirectoryCinostID" - оно повторяется, притом получить первое значение поля "ZALP" .

Например, при таком запросе:
Код: plaintext
1.
2.
3.
SELECT DirectoryCinostID, ZALP
FROM RuhCinCapSub
group by DirectoryCinostID
я получу последнее значения поля "ZALP ", а не первое, как надо бы ...

Заранее спасибо всем откликнувшимся !!!
...
Рейтинг: 0 / 0
13.04.2011, 17:45
    #37214927
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL запрос с "group by", получить первое значение поля ...
Понятия "первая запись" или "последняя запись" в SQL смысла не имеют.
...
Рейтинг: 0 / 0
14.04.2011, 14:17
    #37216439
potkin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL запрос с "group by", получить первое значение поля ...
Ну почему ???
при
Код: plaintext
group by DirectoryCinostID
берётся последнее значение поля "ZALP".

П.С. В общем мне получилось получить первое значение этого поля )))
...
Рейтинг: 0 / 0
14.04.2011, 17:39
    #37216967
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL запрос с "group by", получить первое значение поля ...
potkinНу почему ???
при
Код: plaintext
group by DirectoryCinostID
берётся последнее значение поля "ZALP".Это случайность.
Сегодня у тебя получилось, a завтра (после удаления-добавления строк) не получится. Записи в базе данных не сортированны в принципе. Читай букварь по SQL.

Если хочешь выбирать первую и/или последнюю запись в группе записей - пронумеруй записи внутри группы. Либо просто цифрой, либо временем создания записи, либо еще чем-либо. А потом на основе этой созданной нумерации уже и выбирай первую, последнюю или любую другую.
...
Рейтинг: 0 / 0
07.05.2011, 16:10
    #37250782
potkin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL запрос с "group by", получить первое значение поля ...
White OwlЭто случайность.

Не не случайность - протестил как мог: и удалял и добавлял и изменял данные. Работает )))
авторЕсли хочешь выбирать первую и/или последнюю запись в группе записей - пронумеруй записи внутри группы. Либо просто цифрой, либо временем создания записи, либо еще чем-либо. А потом на основе этой созданной нумерации уже и выбирай первую, последнюю или любую другую.
Типа того и применил, правда вышел 3-х этажный запрос и медленно работает, если выборку делать "большую" (группировать много записей), но это делают только в конце месяца, квартала и года (когда "года" - *опа полная). А так терпимо.
...
Рейтинг: 0 / 0
Форумы / SQLite [игнор отключен] [закрыт для гостей] / SQL запрос с "group by", получить первое значение поля ... / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]