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
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