powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / ЕЩЕ ОДНА ПРОБЛЕМКА С SQL ЗАПРОСОМ
18 сообщений из 18, страница 1 из 1
ЕЩЕ ОДНА ПРОБЛЕМКА С SQL ЗАПРОСОМ
    #32208162
Cnupum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sql.Clear;
sql.Add('select s.FIO,m.date_sled ');
sql.Add('from table_main m,table_sotr s');
sql.Add('where m.date_sled<=:d ');
sql.Add('order by s.FIO');
Parameters.ParamByName('d').Value:=datetostr(now);

КАК СДЕЛАТЬ, ЧТОБЫ FIO НЕ ПОВТОРЯЛОСЬ
Т.Е. ЕСТЬ КАКИЕ ТО ЧУВАКИ В ТАБЛИЦЕ SOTR А ДАТА СДАЧИ ЭКЗАМОВ В ТАБЛИЦЕ MAIN ЕСТЕСТВЕННО ЧТО ДАТ НА КАЖДОГО БОЛЬШЕ ОДНОЙ. ВОТ И ВОПРОС КАК СДЕЛАТЬ ЧТОБЫ ВЫВОДИЛ КАЖОГО ПО ОДНОМУ, ПРИЧЕМ ДАТА ФАКТИЧЕСКИ И НЕ ВАЖНА (У НЕЕ VISIBLE =FALSE, ТАК .. УСЛОВИЕ ВЫБОРКИ)
...
Рейтинг: 0 / 0
ЕЩЕ ОДНА ПРОБЛЕМКА С SQL ЗАПРОСОМ
    #32208178
Cnupum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sql.Clear;
sql.Add('select s.FIO,m.date_sled,s.kod,m.kod_sotr ');
sql.Add('from table_main m,table_sotr s');
sql.Add('where m.date_sled<=:d and s.kod=m.kod_sotr ');
sql.Add('order by s.FIO');
Parameters.ParamByName('d').Value:=datetostr(now);


спасибо за беспокойство и спасибо
...
Рейтинг: 0 / 0
ЕЩЕ ОДНА ПРОБЛЕМКА С SQL ЗАПРОСОМ
    #32208293
Papka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Toka luche :d - sdelaj tipa DateTime. i peredavaj kak DateTime.
...
Рейтинг: 0 / 0
ЕЩЕ ОДНА ПРОБЛЕМКА С SQL ЗАПРОСОМ
    #32208341
Фотография Andrew Campball
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
select distinct s.FIO
  from table_main m,table_sotr s
  where m.date_sled<=:d
  order by s.FIO
...
Рейтинг: 0 / 0
ЕЩЕ ОДНА ПРОБЛЕМКА С SQL ЗАПРОСОМ
    #32208969
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
select s.FIO,max(m.date_sled)
from table_main m join table_sotr s
on s.kod=m.kod_sotr 
where m.date_sled<=getdate()
group by s.FIO
order by s.FIO
...
Рейтинг: 0 / 0
ЕЩЕ ОДНА ПРОБЛЕМКА С SQL ЗАПРОСОМ
    #32209379
Timujin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Cat2
В запросе
select s.FIO,max(m.date_sled)
from table_main m join table_sotr s
on s.kod=m.kod_sotr
where m.date_sled<=getdate()
group by s.FIO
order by s.FIO
лишнее делать order by s.FIO, хотя я думаю, что Server тоже так считает и на время выполнения это не влияет
...
Рейтинг: 0 / 0
ЕЩЕ ОДНА ПРОБЛЕМКА С SQL ЗАПРОСОМ
    #32209446
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НЕЛЬЗЯ рассчитывать на порядок выдачи строк если он не указан явно
...
Рейтинг: 0 / 0
ЕЩЕ ОДНА ПРОБЛЕМКА С SQL ЗАПРОСОМ
    #32209460
Timujin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Gluk (Kazan)
Server перед группировкой записей сортирует их. У меня ни разу не было, чтобы после group by записи не выстраивались в порядке, указанном в group by
...
Рейтинг: 0 / 0
ЕЩЕ ОДНА ПРОБЛЕМКА С SQL ЗАПРОСОМ
    #32209470
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Timujin

Server перед группировкой записей сортирует их.

Где это написано? Если ты хочешь гарантированно иметь отсортированные записи ORDER BY необходим.
...
Рейтинг: 0 / 0
ЕЩЕ ОДНА ПРОБЛЕМКА С SQL ЗАПРОСОМ
    #32209483
Timujin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Согласен на контрольный в голову. Насчет сортировки записей перед их группировкой, конечно, нигде не написано, но так логичнее всего. Я не настаиваю, просто я делаю так и пока проблем не было.
...
Рейтинг: 0 / 0
ЕЩЕ ОДНА ПРОБЛЕМКА С SQL ЗАПРОСОМ
    #32209493
Cnupum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все равно не работает кстати
...
Рейтинг: 0 / 0
ЕЩЕ ОДНА ПРОБЛЕМКА С SQL ЗАПРОСОМ
    #32209506
Cnupum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sql.Clear;
sql.Add('select distinct s.FIO,s.kod,m.kod_sotr,m.date_next ');
sql.Add('from table_main m, table_sotr s');
sql.Add('where m.date_next<=:d and s.kod=m.kod_sotr');
Parameters.ParamByName('d').Value:=now;
sql.Add('order by s.FIO');


вот этот текст выбирает все парвильно, но записи с одинаковыми FIO повторяются


sql.Add('select s.FIO,max(m.date_sled)');
sql.Add('from table_main m join table_sotr s');
sql.Add('on s.kod=m.kod_sotr');
sql.Add('where m.date_sled<=getdate()');
sql.Add('group by s.FIO');


этот пишет ошибка в синтаксисе FROM
...
Рейтинг: 0 / 0
ЕЩЕ ОДНА ПРОБЛЕМКА С SQL ЗАПРОСОМ
    #32209739
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Timujin

>> Server перед группировкой записей сортирует их. У меня ни разу не было ...

У меня было. Под Oracle программка долгое время работала как надо, а потом по непонятной причине данные "рассыпались" Стал проверять, оказывается забыл order by после group by.

Сервер сам решает в каком порядке удобнее выводить записи если пользователь этим не озаботился. В любом случае нужно взять за правило ставить order by если сортировка нужна.
...
Рейтинг: 0 / 0
ЕЩЕ ОДНА ПРОБЛЕМКА С SQL ЗАПРОСОМ
    #32209754
Timujin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Gluk (Kazan)
>> У меня было. Под Oracle программка долгое время работала как надо ...
Я работаю под InterBase. Спасибо за пример, я думал, что прав, но факты - вещь упрямая. Честно буду делать order by после group by.
...
Рейтинг: 0 / 0
ЕЩЕ ОДНА ПРОБЛЕМКА С SQL ЗАПРОСОМ
    #32209919
Cnupum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не отвлекайтесь от темы .... помогите блин запрос клевый сделать
...
Рейтинг: 0 / 0
ЕЩЕ ОДНА ПРОБЛЕМКА С SQL ЗАПРОСОМ
    #32209940
Timujin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sql.Clear;
sql.Add('select distinct s.FIO');
sql.Add('from table_main m,table_sotr s');
sql.Add('where m.date_sled<=:d ');
sql.Add('order by s.FIO');
Parameters.ParamByName('d').Value:=datetostr(now);

Чуть поправил твой первоначальный вариант. Я думаю, что так вопрос решен.
...
Рейтинг: 0 / 0
ЕЩЕ ОДНА ПРОБЛЕМКА С SQL ЗАПРОСОМ
    #32209952
Timujin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ой!!!

sql.Clear;
sql.Add('select distinct s.FIO');
sql.Add('from table_main m,table_sotr s');
sql.Add('where m.sotr_id = s.id and m.date_sled<=:d ');
sql.Add('order by s.FIO');
Parameters.ParamByName('d').Value:=datetostr(now);

Не связал таблицы в предыдущем сообщении
...
Рейтинг: 0 / 0
ЕЩЕ ОДНА ПРОБЛЕМКА С SQL ЗАПРОСОМ
    #32210331
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Про Order By. На MS 6.5 все было шоколадно. Если был GROUP BY, то сортировка шла по его полям. Первое время так же работала семера. А потом, то ли я MDAC новый поставил, то ли SP какой - не помню, все отвалилось. И без прямого "Order By" ничего не сортируется.
=============
Cnupum. Если предложеный мною запрос не проходит, то дело, скорее всего в Вашей ненормализованной базе. А то что она не нормализована - 100%. Присутсвие ФИО говорит от том, что нет даже 1NF. Если Вы хотите реально получит помощь, то киньте скрипт с заполнением базы тестовыми значениями и желаемый результат. Тут телепатов нету. Я отвечал по наиболее распространенному варианту требуемого решения - последняя отметка человека где-то.
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / ЕЩЕ ОДНА ПРОБЛЕМКА С SQL ЗАПРОСОМ
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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