Я пытаюсь разработать страницу с расписанием на моем веб-сайте, и это моя структура базы данных:
Я хочу получить общее количество часов (сумма таблицы TimeSheetWeeks (timeFrom-timeTo)), общие расходы (общая сумма таблицы TimeSheetWeeks) и общее (общая сумма таблицы TimSheetWeeks + общая сумма таблицы compAllow).
Это мой запрос, который я написал, чтобы получить мой результат:
;WITH w(tot, tid, eid, fd, td, am, mw) AS
(
SELECT Total = tsw.amount+ca.amount , tsw.[TimeSheetID], [EmployeeID],
[FromDate],[ToDate], tsw.[Amount], SUM(DATEDIFF(MINUTE, [timeFrom],[timeTo] ))
FROM
TimeSheet ts
INNER JOIN (
SELECT SUM(amount) amount, TimeSheetID
FROM TimeSheetWeeks
GROUP BY TimeSheetID
) tsw ON ts.TimeSheetID = tsw.TimeSheetID INNER JOIN (
SELECT SUM(amount) amount, TimeSheetID
FROM CompAllow
GROUP BY TimeSheetID
) ca ON ts.TimeSheetID = ca.TimeSheetID INNER JOIN (
SELECT timeFrom, timeTo, TimeSheetID
FROM TimeSheetWeeks
) AS tss ON tss.TimeSheetID=ts.TimeSheetID
WHERE ts.TimeSheetID=6
Group By tsw.[TimeSheetID], [EmployeeID], [FromDate], [ToDate], tsw.[Amount]
)
SELECT tot, tid, eid, fd, td, Amount = am, totalHrs = RTRIM(mw/60) + ':' +
RIGHT('0'+ RTRIM(mw%60),2)
FROM w;
этот запрос вызывает ошибку:
Столбец ca.amount недопустим в списке выбора, поскольку он не содержится ни в статистической функции, ни в предложении GROUP BY.
Что здесь не так? Спасибо заранее.