![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Все привет!!!!! Всем заранее спасибо за помощь!
Имеется 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 |
|
#5
|
||||
|
||||
|
Цитата:
|
|
#6
|
||||
|
||||
|
Цитата:
Код:
select Sports.* from Sports inner join GroupS on GroupS.Код_Спортсмена=Sports.Код_Спортсмена inner join Otdel on Otdel.Код_Отделения = GroupS.Код_Отделения where Otdel.Отделение="БАДМИНТОН" |