我不想在 SQL Server 中使用 OVER 子句重置运行总计。我尝试了几件事并非常努力地寻找答案,但找不到任何东西。我的查询以及结果如下。
SELECT
coaID,
fiscalID,
gl.amount,
SUM(gl.amount) OVER (PARTITION BY coaID, fiscalID ORDER BY gl.id) runningTotal
FROM
gl
INNER JOIN dbo.coa ON dbo.gl.coaId = coa.ID
WHERE
gl.coaID IN (
SELECT DISTINCT coa
FROM glCategoryGLAccountLink
WHERE glCategoryGLAccountLink.categoryId = 10001
)
AND gl.companyID=1
ORDER BY coaID, fiscalID
它大部分情况下都有效,但当财政 ID 更改时会重置运行总计。我的目标是允许运行总计继续,而无需为每个 coaID 重置。
最佳答案
My objective is to allow the running total to continue without being reset for each
coaID
.
从分区中删除fiscalID
,即更改此:
SUM(gl.amount) OVER (PARTITION BY coaID, fiscalID ORDER BY gl.id) runningTotal
致:
SUM(gl.amount) OVER (PARTITION BY coaID ORDER BY gl.id) runningTotal
关于sql - OVER 并分区多列而不重置总数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57939231/