Witam.
Raczkuję sobie właśnie w SQL-u, a dokładniej w jego odmianie pod MS Access. Realizowałem sobie bazodanowe zadanie z rozszerzonej matury z infy z 2010 i natrafiłem na problem, którego nie mogę zrozumieć. Mam następujący kod SQL kwerendy:
SELECT
Przedmioty.NazwaPrzedmiotu AS [Przedmiot],
ROUND(AVG(Oceny.Ocena), 2) AS [Średnia]
FROM
Przedmioty INNER JOIN Oceny ON Przedmioty.IDprzedmiotu = Oceny.IDprzedmiotu
WHERE
(Oceny.IdUcznia BETWEEN 149 AND 179)
GROUP BY
Przedmioty.NazwaPrzedmiotu
ORDER BY
ROUND(AVG(Oceny.Ocena), 2) DESC;
No i on mi działa, pokazuje w wyniku przedmioty i odpowiadające im średnie.
Jednak brzydko wyglądało mi to powtórzenie ROUND(AVG(Oceny.Ocena), 2) na końcu i chciałem zapisać to w ten sposób:
SELECT
Przedmioty.NazwaPrzedmiotu AS [Przedmiot],
ROUND(AVG(Oceny.Ocena), 2) AS [Średnia]
FROM
Przedmioty INNER JOIN Oceny ON Przedmioty.IDprzedmiotu = Oceny.IDprzedmiotu
WHERE
(Oceny.IdUcznia BETWEEN 149 AND 179)
GROUP BY
Przedmioty.NazwaPrzedmiotu
ORDER BY
[Średnia] DESC;
Ale w wyniku tego otrzymuję okno wprowadzani parametru Średnia.
Mógłby mi ktoś wytłumaczyć, dlaczego tak jest i jak to działa? Czemu nie mogę użyć aliasu jako argumentu dla ORDER BY?
To moje pierwsze kroki w SQL'u, ale że nie znalazłem satysfakcjonującego tutoriala krok-po-kroku, to po prostu czytam dokumentację http://office.microsoft.com/pl-pl/access-help i staram się rozwiązywać zadania, więc podejrzewam, że to kwestia braku zrozumienia czegoś u podstaw.
Z góry dzięki za pomoc bądź odesłanie do czegoś, co mógłbym sobie RTFM-ować.