В моем запросе я в настоящее время работает, чтобы получить общую сумму полей в заданном диапазоне дат, я также хочу, чтобы запрос показывал итоговые значения за один день ,SQL Server - Получайте еженедельные и ежедневные итоги в одном запросе
Например мой текущий результат таков:
ID, UserID, uname, totals
1 1 admin 3
2 3 test 6
3 4 user 2
Я хочу, чтобы мой результат так:
ID, UserID, uname, totals, todaytotal
1 1 admin 3, 1
2 3 test 6, 2
3 4 user 2, 2
Данные здесь является случайным, но только для визуальной цели.
Итоговые получает сумму количества из таблицы с именем ActivityLog
мой запрос, как это, работая с диапазоном дат:
SELECT al.UserID,
od.CardNumber as uname,
Sum(isnull(cast(ActualQuantity as float),0)) totals
from ActivityLog al , OperatorDetail od
WHERE
od.ID = al.UserID AND
StartDateTime >= '2014-08-24 00:00:00.000'
AND EndDateTime <= '2014-08-31 23:59:59.000'
group by al.UserID, od.CardNumber
order by od.CardNumber
Это то, что я пытался попробовать получить итоговые суммы от определенной даты (todaytotal на 2014-08-29)
SELECT al.UserID,
od.CardNumber as uname,
Sum(isnull(cast(ActualQuantity as float),0)) totals,
(select Sum(isnull(cast(ACTL.ActualQuantity as float),0)) totaltoday
from ActivityLog ACTL, OperatorDetail OPD
WHERE
ACTL.UserID = OPD.ID
AND
al.StartDateTime >= '2014-08-29 00:00:00.000' -- same date (one day)
AND al.EndDateTime <= '2014-08-29 23:59:59.000' -- same date (one day)
GROUP BY ACTL.UserID, OPD.CardNumber
) as todaytotal
from ActivityLog al , OperatorDetail od
WHERE
od.ID = al.UserID AND
StartDateTime >= '2014-08-24 00:00:00.000'
AND EndDateTime <= '2014-08-31 23:59:59.000'
group by al.UserID, od.CardNumber, al.StartDateTime, al.EndDateTime
order by od.CardNumber
с этим я получаю эту ошибку:
Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression.
Как я могу это достичь?
я не получил эту линию вашей, простите меня, если я задание nooby вопроса: StartDateTime> = cast (getdate() as date) и StartDateTime
Codeek
@Codeek. , , В выражении 'case' это не имеет значения. Однако в разделе 'where' это делается. Вы хотите избежать использования столбцов в качестве аргументов функций в предложениях 'where' и' on', поскольку это предотвращает использование индексов. –
Thanx a load :) Узнал что-то новое :) – Codeek