|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
Вопрос про ADOQuery
Все привет!!!!! Всем заранее спасибо за помощь!
Имеется Delphi 2007. БД Access. Коннект через ADO. Хочу вывести список спортсменов отделения БАДМИНТОН, через ADOQuery. Вот такая структура БД: [spoiler] [/spoiler] Выполняю вот такой SQL запрос : Код:
select * FROM otdel, groupS, kdGroup, trener, sports, data, razrad, kodrazr WHERE otdel.Код_отделения = groupS.Код_отделения AND groupS.код_группы = kdGroup.код_группы AND groupS.код_тренера = trener.код_тренера AND groupS.код_спортсмена = sports.код_спортсмена AND sports.код_спортсмена = data.код_спортсмена AND sports.код_спортсмена = razrad.код_спортсмена AND razrad.Код_разряда = kodrazr.Код_разряда AND otdel.отделение LIKE :otd Выводит вот что: У спортсменки Сысоева, есть несколько разрядов. Полученных в разные даты. Почему её выводит несколько раз? Не могу догнать и всё Как сделать так чтобы запись выводилась только один раз, причем с последним полученным разрядом. Проблема в Запросе? или в структуре БД? Спасибо за любую помощь... |
#2
|
||||
|
||||
Цитата:
Код:
FROM otdel, groupS, kdGroup, trener, sports, data, razrad, kodrazr Цитата:
Код:
AND razrad.Дата_присвоения = (SELECT MAX(razrad2.Дата_присвоения) FROM razrad AS razrad2 WHERE sports.код_спортсмена = razrad2.код_спортсмена) Цитата:
|
#3
|
|||
|
|||
АААА poli-smen!!!! Спасибо тебе большое!!!!!!!!!! Все получилось!!!
Блин нужно с 0 изучать SQL... Я учусь в институте, нам ни про алиасы ничего не говорили. И объясняли и требовали с нас на контрольных CROSS JOIN. Еще раз БОЛЬШОЕ спасибо! от души! |
#4
|
||||
|
||||
Дополнительный запрос делать ради этого? Да ну. Лучше уж так:
Код:
select * FROM otdel, groupS, kdGroup, trener, sports, data, razrad, kodrazr WHERE otdel.Код_отделения = groupS.Код_отделения AND groupS.код_группы = kdGroup.код_группы AND groupS.код_тренера = trener.код_тренера AND groupS.код_спортсмена = sports.код_спортсмена AND sports.код_спортсмена = data.код_спортсмена AND sports.код_спортсмена = razrad.код_спортсмена AND razrad.Код_разряда = kodrazr.Код_разряда AND otdel.отделение LIKE :otd GROUP BY sports.код_спортсмена ORDER BY razrad.Дата_присвоения DESC Оставайтесь хорошими людьми... VK id2634397, ds [at] phoenix [dot] dj |
#5
|
||||
|
||||
Цитата:
|
#6
|
||||
|
||||
Цитата:
Код:
select Sports.* from Sports inner join GroupS on GroupS.Код_Спортсмена=Sports.Код_Спортсмена inner join Otdel on Otdel.Код_Отделения = GroupS.Код_Отделения where Otdel.Отделение="БАДМИНТОН" Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |