powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Пожалуйста,помогите составить запрос.
13 сообщений из 13, страница 1 из 1
Пожалуйста,помогите составить запрос.
    #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
Пожалуйста,помогите составить запрос.
    #33062643
RFT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
select id, max(sdate) from table group by id
...
Рейтинг: 0 / 0
Пожалуйста,помогите составить запрос.
    #33062758
_Shaman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо. Только SELECT DISTINCT num,id, MAX(sdate) as start from pm GROUP BY ID

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

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

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

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

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

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

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

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

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

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

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

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


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