Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Access
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.06.2017, 15:38   #1
Beginner_Access
Пользователь
 
Регистрация: 17.08.2014
Сообщений: 41
По умолчанию Поле и вычисления в запросе

Всем добрый день!

Помогите разобраться. Не получается вставить в запрос SlalomYearly поле ALT_SCORE, т.к. при добавлении этого поля запрос перестает показывать только максимальные значения для каждого года и показывает все записи. А необходимо вывести максимум SL за год и соответствующий ему ALT_SCORE.

Также в этом запросе хотелось бы добавить поле с вычислениями ЦЕЛОЕ от Avg-SL, но при попытке это сделать запрос просит значение Alg-SL.

Базу прилагаю.

Спасибо.
Вложения
Тип файла: zip БАЗА_ИСХ_02.zip (44.8 Кб, 41 просмотров)
Beginner_Access вне форума Ответить с цитированием
Старый 08.06.2017, 16:16   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Код:
select A.Last, A.First, A.COUNTRY, A.[Max-SL], INT( A.[Avg-SL]) as [INT-Avg-SL], 
A.[StDev-SL],  A.[Count-SL], A.Year, A.[Возраст], s.ALT_SCORE
FROM
(SELECT Slalom.Last, Slalom.First, Slalom.COUNTRY, 
Max(Slalom.SL) AS [Max-SL], Avg(Slalom.SL) AS [Avg-SL], 
StDev(Slalom.SL) AS [StDev-SL], Count(Slalom.SL) AS [Count-SL], Slalom.Year, Slalom.Возраст
FROM Slalom
GROUP BY Slalom.Last, Slalom.First, Slalom.COUNTRY, Slalom.Year, Slalom.Возраст
HAVING (((Slalom.Last)="VENTUL-POTE") AND ((Slalom.First)="Louis"))) A
INNER JOIN Slalom S on S.Last=A.Last and S.First=A.First and S.COUNTRY=A.COUNTRY 
and S.Year=A.Year and S.SL=A.[Max-SL]
Serge_Bliznykov вне форума Ответить с цитированием
Старый 08.06.2017, 16:22   #3
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Avg-SL, но при попытке это сделать запрос просит значение Alg-SL
может Alg-SL нету поля?


Код:
SELECT
    SlalomYearly.Last
  , SlalomYearly.First
  , SlalomYearly.COUNTRY
  , SlalomYearly.[Max-SL]
  , SlalomYearly.[Avg-SL]
  , SlalomYearly.[StDev-SL]
  , SlalomYearly.[Count-SL]
  , SlalomYearly.Year
  , SlalomYearly.Возраст
  , AllYearsRaw.ALT_SCORE
FROM
    (AllYearsRaw
    INNER JOIN
        Slalom
        ON
            AllYearsRaw.DATE = Slalom.Date)
    INNER JOIN
        SlalomYearly
        ON
            (
                SlalomYearly.[Max-SL] = AllYearsRaw.SL
            )
            AND
            (
                Slalom.Year = SlalomYearly.Year
            )
GROUP BY
    SlalomYearly.Last
  , SlalomYearly.First
  , SlalomYearly.COUNTRY
  , SlalomYearly.[Max-SL]
  , SlalomYearly.[Avg-SL]
  , SlalomYearly.[StDev-SL]
  , SlalomYearly.[Count-SL]
  , SlalomYearly.Year
  , SlalomYearly.Возраст
  , AllYearsRaw.ALT_SCORE
;
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 10.06.2017, 00:29   #4
Beginner_Access
Пользователь
 
Регистрация: 17.08.2014
Сообщений: 41
По умолчанию

Большое спасибо! Теперь попытаюсь понять как вы это сделали. Правда, если макс значение имеют три одинаковые записи, то они три и выводятся, а хотелось бы только одно, любое.

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
Код:
select A.Last, A.First, A.COUNTRY, A.[Max-SL], INT( A.[Avg-SL]) as [INT-Avg-SL], 
A.[StDev-SL],  A.[Count-SL], A.Year, A.[Возраст], s.ALT_SCORE
FROM
(SELECT Slalom.Last, Slalom.First, Slalom.COUNTRY, 
Max(Slalom.SL) AS [Max-SL], Avg(Slalom.SL) AS [Avg-SL], 
StDev(Slalom.SL) AS [StDev-SL], Count(Slalom.SL) AS [Count-SL], Slalom.Year, Slalom.Возраст
FROM Slalom
GROUP BY Slalom.Last, Slalom.First, Slalom.COUNTRY, Slalom.Year, Slalom.Возраст
HAVING (((Slalom.Last)="VENTUL-POTE") AND ((Slalom.First)="Louis"))) A
INNER JOIN Slalom S on S.Last=A.Last and S.First=A.First and S.COUNTRY=A.COUNTRY 
and S.Year=A.Year and S.SL=A.[Max-SL]
Beginner_Access вне форума Ответить с цитированием
Старый 10.06.2017, 00:42   #5
Beginner_Access
Пользователь
 
Регистрация: 17.08.2014
Сообщений: 41
По умолчанию

Большое спасибо, работает как надо! И выражение получилось в вашем запросе создать.


Цитата:
Сообщение от Aleksandr H. Посмотреть сообщение
Avg-SL, но при попытке это сделать запрос просит значение Alg-SL
может Alg-SL нету поля?


Код:
SELECT
    SlalomYearly.Last
  , SlalomYearly.First
  , SlalomYearly.COUNTRY
  , SlalomYearly.[Max-SL]
  , SlalomYearly.[Avg-SL]
  , SlalomYearly.[StDev-SL]
  , SlalomYearly.[Count-SL]
  , SlalomYearly.Year
  , SlalomYearly.Возраст
  , AllYearsRaw.ALT_SCORE
FROM
    (AllYearsRaw
    INNER JOIN
        Slalom
        ON
            AllYearsRaw.DATE = Slalom.Date)
    INNER JOIN
        SlalomYearly
        ON
            (
                SlalomYearly.[Max-SL] = AllYearsRaw.SL
            )
            AND
            (
                Slalom.Year = SlalomYearly.Year
            )
GROUP BY
    SlalomYearly.Last
  , SlalomYearly.First
  , SlalomYearly.COUNTRY
  , SlalomYearly.[Max-SL]
  , SlalomYearly.[Avg-SL]
  , SlalomYearly.[StDev-SL]
  , SlalomYearly.[Count-SL]
  , SlalomYearly.Year
  , SlalomYearly.Возраст
  , AllYearsRaw.ALT_SCORE
;
Beginner_Access вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вычисляемое поле в запросе Dozent БД в Delphi 4 15.05.2012 00:16
Как сформировать поле в запросе? T11 Microsoft Office Access 1 02.08.2011 11:13
Логическое поле в SQL запросе Cannibal Помощь студентам 4 19.07.2011 21:02
Ввод данных через поле, для условия отбора в запросе DeFREEnd Microsoft Office Access 4 27.03.2011 15:25
Вычисления возраста в SQL-запросе Ayubkhon БД в Delphi 2 25.05.2010 13:37