sql sub и общий итог - PullRequest
       28

sql sub и общий итог

0 голосов
/ 01 июля 2011

Есть хороший способ получить общие итоги здесь - этот запрос показывает промежуточные итоги за каждый день, но как я могу получить итоговую сумму каждой промежуточной суммы без подзапроса или другого запроса

также есть что-то лучше использовать, чем вычислить сумму?

SELECT loguser,logdate,logaction,logtime
FROM log WHERE loguser IN
('scott')   AND logdate  
BETWEEN '2011-06-01' AND '2011-06-15'   
ORDER BY logdate DESC    
COMPUTE SUM(logtime) BY logdate

SQL Server 2008 R2

Ответы [ 3 ]

3 голосов
/ 01 июля 2011

Я не знаком с COMPUTE, как вы его использовали, но это (или вариант) должно работать на большинстве диалектов SQL ...

SELECT loguser,logdate,logaction,SUM(logtime)
FROM log WHERE loguser IN
('scott')   AND logdate  
BETWEEN '2011-06-01' AND '2011-06-15'
GROUP BY loguser,logdate,logaction WITH ROLLUP
ORDER BY logdate DESC    
0 голосов
/ 01 июля 2011

Я думаю, вам следует рассмотреть возможность использования ROLLUP over COMPUTE, как подсказывает Демс, но если вам нужно вернуть 3 вещи: 1) данные ежедневного журнала, 2) ежедневный промежуточный итог;и, 3) общий итог (итог промежуточных итогов), тогда я думаю, что вам нужно будет ОБЪЕДИНИТЬ запрос, который находит первые два, как тот, который у вас есть, с запросом, который находит общий итог.

0 голосов
/ 01 июля 2011

Лучший способ получить общий итог - использовать внешний интерфейс .. вместо запроса.

...