powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Нужна помощь с запросом...
9 сообщений из 9, страница 1 из 1
Нужна помощь с запросом...
    #39187285
Gennady_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хай олл,
есть такой набор записей:
Name event Name student Result1500 m Finals Zori Seymour 738141500 m Finals An Mei Daniels 710151500 m Finals Siena Jabon 805121500 m Finals Catherine Camara 801001500 m Finals Taylor Crichlow 815101500 m Finals Jessica Bruton 704251500 m Finals Tayla Horan 746231500 m Finals Ahziah Hunt 63025200 m Finals Ahziah Hunt 3410200 m Finals Jessie Daba 3512200 m Finals Lexiana Tucci 3608400 m Finals Zemira Webb 13212400 m Finals Siena Jabon 12516400 m Finals Elsie Hastings 12015400 m Finals Zori Seymour 12823
мне надо получить:
Name event 1st 2nd 3rd1500 m Finals Ahziah HuntJessica BrutonAn Mei Daniels и т.д.
Подскажите, как сделать красиво одним запросом?
...
Рейтинг: 0 / 0
Нужна помощь с запросом...
    #39187293
в таком духе
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
TRANSFORM MIN(NameStudent)
SELECT NameEvent
FROM
(SELECT T.NameEvent,T.NameStudent,T.Result,Count(1) As ord
 FROM Tabl1 T INNER JOIN Tabl1 T1
 ON T1.NameEvent=T.NameEvent AND T1.Result<=T.Result
 GROUP BY T.NameEvent,T.NameStudent,T.Result)
WHERE ord<=3
GROUP BY NameEvent
PIVOT ord
...
Рейтинг: 0 / 0
Нужна помощь с запросом...
    #39187313
Gennady_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
непоймучка, спасибо большое. Всё как надо. Мастер.
...
Рейтинг: 0 / 0
Нужна помощь с запросом...
    #39188477
Gennady_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
непоймучка, однако при одинаковых результатах подзапрос возвращает такое:
Name discipline Name student Result OrdHigh Jump Dylan Thomas 411 1High Jump Nicholas Massa 403 2High Jump Matthew Jessey 402 5High Jump DeAndre Todd 402 5High Jump Ajani Richardson 402 5High Jump Thomas McPhee 401 7High Jump Logan Thompson 401 7High Jump Joshua Roberts 311 9High Jump Charlie Thorpe 311 9High Jump Kent Simmons 310 10High Jump Ahzai Smith 309 11High Jump Adam McDonald 308 12High Jump CJ Sousa-Saints 305 14High Jump Cameron Pollett 305 14

а нужно конечно так:

Name discipline Name student Result OrdHigh Jump Dylan Thomas 411 1High Jump Nicholas Massa 403 2High Jump Matthew Jessey 402 3High Jump DeAndre Todd 402 3High Jump Ajani Richardson 402 3High Jump Thomas McPhee 401 4High Jump Logan Thompson 401 4High Jump Joshua Roberts 311 5High Jump Charlie Thorpe 311 5High Jump Kent Simmons 310 6High Jump Ahzai Smith 309 7High Jump Adam McDonald 308 8High Jump CJ Sousa-Saints 305 9High Jump Cameron Pollett 305 9
подскажи, куда копать...
...
Рейтинг: 0 / 0
Нужна помощь с запросом...
    #39188571
guest_rusimport
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Gennady_,
может быть такой подзапрос? :)
Код: sql
1.
2.
3.
4.
5.
6.
select t3.nameevent,t3.namestudent,t3.result,t4.ord from tabl1 as t3 inner join (SELECT t1.nameevent, t1.result, count(1) AS ord
FROM (SELECT Tabl1.Nameevent,  Tabl1.Result
FROM Tabl1 GROUP BY Tabl1.Nameevent, Tabl1.Result) AS t1 INNER JOIN (SELECT Tabl1.Nameevent,  Tabl1.Result
FROM Tabl1 GROUP BY Tabl1.Nameevent, Tabl1.Result) AS t2 ON (t2.result<=t1.result) AND (t1.nameevent=t2.nameevent)
GROUP BY t1.Nameevent, t1.Result) as t4 on t3.nameevent=t4.nameevent and t3.result=t4.result
order by t3.nameevent,t3.result,t3.namestudent;
...
Рейтинг: 0 / 0
Нужна помощь с запросом...
    #39188596
Gennady_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_rusimport, Спасибо.
Вроде работает, сейчас протестирую с бОльшим количеством данных.
часто бываю на http://am.rusimport.ru. Очень помогает, спасибо еще раз.
...
Рейтинг: 0 / 0
Нужна помощь с запросом...
    #39188667
Gennady_непоймучка, однако при одинаковых результатах подзапрос возвращает такое:
Name discipline Name student Result OrdHigh Jump Dylan Thomas 411 1High Jump Nicholas Massa 403 2High Jump Matthew Jessey 402 5High Jump DeAndre Todd 402 5High Jump Ajani Richardson 402 5High Jump Thomas McPhee 401 7High Jump Logan Thompson 401 7High Jump Joshua Roberts 311 9High Jump Charlie Thorpe 311 9High Jump Kent Simmons 310 10High Jump Ahzai Smith 309 11High Jump Adam McDonald 308 12High Jump CJ Sousa-Saints 305 14High Jump Cameron Pollett 305 14

а нужно конечно так:

Name discipline Name student Result OrdHigh Jump Dylan Thomas 411 1High Jump Nicholas Massa 403 2High Jump Matthew Jessey 402 3High Jump DeAndre Todd 402 3High Jump Ajani Richardson 402 3High Jump Thomas McPhee 401 4High Jump Logan Thompson 401 4High Jump Joshua Roberts 311 5High Jump Charlie Thorpe 311 5High Jump Kent Simmons 310 6High Jump Ahzai Smith 309 7High Jump Adam McDonald 308 8High Jump CJ Sousa-Saints 305 9High Jump Cameron Pollett 305 9
подскажи, куда копать...

Это да.
Хотел вам вдогонку про это написать, но сразу не случилось, а потом думал, что обошлось

Тут, помимо той проблемы, которую вам guest_rusimport уже порешал своим вариантом подзапроса,
есть еще такой момент, что в случае повторяющихся результатов, есть сложности с тем,
чтобы на выходе transform'а получить имена участников с такими результатами в одной ячейке
(т.е. на одном "месте"), ибо в группирующих запросах MSA отсутствуют штатные средства
конкатенации текстовых значений группируемых строк.

Лишь при попарно повторяющихся результатах, пару победителей можно объединить,
используя штатные конструкции SQL - например как TRANSFORM Min(...) & " " & Max(...)

Но если их будет более двух (т.е. в общем случае), то подобным приемом не отделаться.

В принципе, тут на форуме есть ряд топиков с примерами функций для конкатенации текстовых
значений в группирующих запросах, поищите, прожует ли их TRANSFORM, надо пробовать.
...
Рейтинг: 0 / 0
Нужна помощь с запросом...
    #39191031
Gennady_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
непоймучка,
Спасибо что откликнулись, трансформировать не обязательно, главное правильно раздать места.
...
Рейтинг: 0 / 0
Нужна помощь с запросом...
    #39191135
Photografer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
непоймучка,здравствуйте. Не подскажете, как мне отфильтровать текстовые поля, чтобы не было пустых полей. Только не кодом программы. А когда открываю запрос, там таблица высвечивается и туда надо написать условие отбора. Вот что туда написать, чтобы отображались только не пустые текстовые поля?
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Нужна помощь с запросом...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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