【发布时间】:2016-11-04 06:06:39
【问题描述】:
我知道有人问过这个问题,但我完全感到困惑。
尝试使用 SQL Server 2008 计算每天运行的总计。已经在其他地方查看过解决方案,但仍然完全感到困惑。
下面的代码显示了每日销售额,但我无法得出一个运行总匹配。在这里查看了类似的解决方案,但没有运气。已经查看了 partition by、order by、CTE 等,但我还没有使用 SQL。
不胜感激,我的代码如下。我知道这只会返回按天分组的总数...
SELECT
dim_invoice_date.invoice_date AS 'Invoice Date',
round(SUM(invoice_amount_corp),2) AS 'Sales'
FROM
fact_om_bud_invoice
JOIN
dim_invoice_date ON fact_om_bud_invoice.dim_invoice_date_key = dim_invoice_date.dim_invoice_date_key
WHERE
dim_invoice_date.current_cal_month IN ('Current')
AND fact_om_bud_invoice.budget_code IN ('BUDGET')
GROUP BY
dim_invoice_date.invoice_date
HAVING
ROUND(SUM(invoice_amount_corp), 2) <> 0
ORDER BY
'Invoice Date'
这将返回输出:
Invoice Date Sales
-----------------------
4/10/2016 24,132
5/10/2016 15,849
6/10/2016 24,481
7/10/2016 10,243
10/10/2016 42,398
11/10/2016 24,187
要求的格式类似于:
Invoice Date Sales Running Sales
-------------------------------------------
04/10/2016 24,132 24,132
05/10/2016 15,849 39,981
06/10/2016 24,481 64,462
07/10/2016 10,243 74,705
10/10/2016 42,398 117,103
11/10/2016 24,187 141,290
dim_invoice_date 是一个数字字段,它正在查找单独的日期表以显示为日期时间。
【问题讨论】:
-
给出一些示例记录和您的预期输出
-
寻找类似的东西:
-
我无法理解您真正想要的是 Invoice_amount_corp 是数字数据类型,或者如果没有发票,您还想要每天的总数??
-
如果当天没有任何价值,就将其删除。
-
我不确定是否可以将摘要添加到另一列,我认为您可以通过使用“ROLL UP”来进行摘要,它会添加一个新行作为摘要。跨度>
标签: sql sql-server-2008 cumulative-sum