Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Пожалуйста,помогите составить запрос. / 13 сообщений из 13, страница 1 из 1
13.05.2005, 14:37
    #33062488
_Shaman
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пожалуйста,помогите составить запрос.
Здравствуйте! Помогите пожалуйста с запросом. Суть следующая:
Есть таблица в которой 2 поля: int id и date sdate.
Нужно, чтобы в результате встречались все возможные значение поля id по одной строке для каждого значения, причем в выбраных строках должна быть максимальное значение поля sdate.

Т.Е. так:
Исходная таблица:
id date
1 01.01.05
2 01.01.04
1 02.02.05
2. 01.01.03
результат:

1 02.02.05
2 01.01.04
...
Рейтинг: 0 / 0
13.05.2005, 15:18
    #33062643
RFT
RFT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пожалуйста,помогите составить запрос.
Код: plaintext
select id, max(sdate) from table group by id
...
Рейтинг: 0 / 0
13.05.2005, 15:46
    #33062758
_Shaman
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пожалуйста,помогите составить запрос.
Спасибо. Только SELECT DISTINCT num,id, MAX(sdate) as start from pm GROUP BY ID

Так работает, только теперь другая проблема, при попытке изменить запись, выдается исключение с сообщением "недостаточно сведений" ключевого поля для обновления". ключевое поле num. Компонента ADOQuery.
Можно как - нить заставить работать его или нужно будет составлять запос для изменение самому?
...
Рейтинг: 0 / 0
13.05.2005, 16:20
    #33062874
sergkarpenko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пожалуйста,помогите составить запрос.
авторМожно как - нить заставить работать его или нужно будет составлять запос для изменение самому?

При group by и adoquery скорее всего отдельным запросом обновлять придется, делфи под руками нет, не помню есть ли там аналог tupdatesql для bde, у меня просто не возникало таких надобностей.

Я так понимаю хочется в сетке редактировать результат запроса?
Только не совсем понятно, что там редактировать - там же только дата и ид?
...
Рейтинг: 0 / 0
13.05.2005, 16:22
    #33062883
RFT
RFT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пожалуйста,помогите составить запрос.
_Shaman
Есть таблица в которой 2 поля: int id и date sdate.

Ты пишешь:
_Shaman
SELECT DISTINCT num,id, MAX(sdate) as start from pm GROUP BY ID


Так все-таки в таблице не 2 поля, а уже как минимум три (+num)... А какая же она на самом деле?
...
Рейтинг: 0 / 0
13.05.2005, 16:26
    #33062897
_Shaman
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пожалуйста,помогите составить запрос.
Очень хочется :) Вообще там больше данных я просто не стал усложнять вопрос перечислением всего...
А "group by " к сожалению убрать не получается - без него не работает запрос. Ругается, что групповые операции не используются без него.
...
Рейтинг: 0 / 0
13.05.2005, 16:28
    #33062907
_Shaman
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пожалуйста,помогите составить запрос.
таблица такая
num int not null auti_increment,
gr char(100),
id tinyint,
start date,
prymary key(num))
...
Рейтинг: 0 / 0
13.05.2005, 16:35
    #33062932
sergkarpenko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пожалуйста,помогите составить запрос.
авторОчень хочется :) Вообще там больше данных я просто не стал усложнять вопрос перечислением всего...
А "group by " к сожалению убрать не получается - без него не работает запрос. Ругается, что групповые операции не используются без него.

если это комментарий на мой твет
я не к тому чтобы group by убирать, просто есть компоненты у которых для обновления используется свойство updateSQL в котором хранится запрс с update'ом. Как это делают в адо-компонентах я щас не вспомню :(.

Так что я думаю что лучше забросить этот вопрос в форум по делфи, там хоть ткнут в нужную сторону.

А если первичный ключ num, тогда я вообще запутался с тем что тебе нужно
...
Рейтинг: 0 / 0
13.05.2005, 16:43
    #33062966
_Shaman
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пожалуйста,помогите составить запрос.
В ADO вроде нет ничего похожего на UpdateSQL - ADO сам запросы генерит. Но, последую совету, крикну на форум Delphy, может помогут.
...
Рейтинг: 0 / 0
13.05.2005, 16:54
    #33063004
sergkarpenko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пожалуйста,помогите составить запрос.
в принципе как один из вариантов могу предложить:
по клику на строке сетки вызывать форму с текущей записью тока уже в виде edit'oв и пр. далее по Ок вызывать query с update'ом

напр "update date = '01.01.01' where id = :id"

и в таком духе - по-моему это будет быстрее сделать чем возится с редактированием select с группировкой в сетке
...
Рейтинг: 0 / 0
13.05.2005, 16:57
    #33063012
_Shaman
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пожалуйста,помогите составить запрос.
Я уже думал от таком варианте, но желательно чтобы весь интерфейс программы был сделан в едином стиле, а такой способ туда вообще никак не вписывается.
...
Рейтинг: 0 / 0
13.05.2005, 17:07
    #33063051
sergkarpenko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пожалуйста,помогите составить запрос.
тогда пробуй на beforepost или afterpost повесить этот update.
но это не грамотно вроде бы.

кстати ж это нередактируемый запрос
его апдейтить тяжело, объяснил бы зачем тебе это нужно
...
Рейтинг: 0 / 0
14.05.2005, 10:10
    #33063971
_Shaman
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пожалуйста,помогите составить запрос.
авторкстати ж это нередактируемый запрос
его апдейтить тяжело, объяснил бы зачем тебе это нужно

Зачем долго объяснять и к делу это отношения не имеет...

Решил редактировать вручную, другого способа вроде нет.

Всем спасибо за помощь.
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Пожалуйста,помогите составить запрос. / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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