PDA

Просмотр полной версии : Помогите с запросом Sql


andrey_a87
16.04.2008, 16:07
Есть запрос
SELECT DISTINCT
sum(c.HourWeight),
c.HourWeight,
u.UserLogin,
ppersons.Fathername,
ppersons.Name,
ppersons.Surname,
ppersons.Email,
ppersons.RoadName,
c.CourseName
FROM
stat_tests s
INNER JOIN users u ON (s.UserID = u.UserID)
INNER JOIN ppersons ON (u.UserLink = ppersons.PPersonID)
INNER JOIN courses c ON (s.TestID = c.CourseID)
WHERE
(s.StatTestResult > 0.75)
GROUP BY
u.UserLogin,
ppersons.Fathername,
ppersons.Name,
ppersons.Surname,
ppersons.Email,
c.CourseName


Выдётся в виде

sum(c.HourWeight) HourWeight UserLogin Fathername Name Surname Email RoadName CourseName
36,000 9 USER118 Кузьмин Виктор Николаевич nodskisp@chel.surw.mps ЮУРЦБ Актуальность проблемы защиты информации. Основные понятия, термины и определения в области защиты информации
36,000 9 USER118 Кузьмин Виктор Николаевич nodskisp@chel.surw.mps ЮУРЦБ Ведение делопроизводства документов, содержащих информацию, составляющую коммерческую тайну ОАО «РЖД».
54,000 9 USER118 Кузьмин Виктор Николаевич nodskisp@chel.surw.mps ЮУРЦБ Законодательная и нормативная база правового регулирования вопросов защиты информации, составляющей коммерческую тайну
9,000 9 USER118 Кузьмин Виктор Николаевич nodskisp@chel.surw.mps ЮУРЦБ Контроль за соблюдением режима коммерческой тайны
36,000 9 USER118 Кузьмин Виктор Николаевич nodskisp@chel.surw.mps ЮУРЦБ Организация доступа к информационным ресурсам ОАО «РЖД».
18,000 9 USER118 Кузьмин Виктор Николаевич nodskisp@chel.surw.mps ЮУРЦБ Основные положения по защите информации при обработке ее на средствах вычислительной техники.

а мне нужно чтобы он просто просумировал эти девятки,я так понимаю что функция sum не работает вместе с Distinct т,к если убать GROUP BY по c.CourseName ,т он выдёт сумму равную 181 помойму...но должно быть 54

VDShark
17.04.2008, 00:44
...я так понимаю что функция sum не работает вместе с Distinct т,к если убать GROUP BY по c.CourseName ,т он выдёт сумму равную 181 помойму...но должно быть 54

Нет, ты неправильно понял :) Просто если не используется Group BY - то либо используются ТОЛЬКО агрегатные функции (как то sum, max, avg и тп), либо они вообще не используются.