sql - 将编码列添加到现有表
问题描述
我有一个选择声明,按月提取今年到目前为止的发票价值。我正在尝试添加一列以显示每个月的不同目标。所以我可以每周或每月将实际值与目标值进行比较。下面的查询每月重复 260000,我怎样才能将其更改为每月不同的货币值或在答案未知的情况下显示零?
SELECT
FORMAT (SUM(dbo.ARInvoices.arpInvoiceSubtotalBase), 'C0') AS "Total",
DATEPART(month, dbo.ARInvoices.arpInvoiceDate) as "Month", '260000' AS TARGET
FROM dbo.ARInvoices
WHERE dbo.ARInvoices.arpInvoiceDate >= '{%Current Year%}'
GROUP BY DATEPART(month, dbo.ARInvoices.arpInvoiceDate)
这给出了一个结果
理想情况下,结果将如下所示:
MONTH TARGET ACTUAL
Jan $260000 $223735
Feb $383000 $69299
Mar $400000 $0
etc
解决方案
使用派生表/子查询/cte计算每月总计,然后JOIN
到您的目标表
SELECT A.Total, A.Month, T.Target
FROM
(
SELECT SUM(dbo.ARInvoices.arpInvoiceSubtotalBase) AS Total
, DATEPART(month, dbo.ARInvoices.arpInvoiceDate) as Month
FROM dbo.ARInvoices
WHERE dbo.ARInvoices.arpInvoiceDate >= '{%Current Year%}'
GROUP BY DATEPART(month, dbo.ARInvoices.arpInvoiceDate)
) A
LEFT JOIN dbo.Targets T ON A.Month = T.Month
推荐阅读
- vue.js - 如何在 Auth0 中为特定用户检索 AccessToken 以处理许可的 REST API?
- python-3.x - Matplotlib 中 Contourf 的颜色级别数
- wpf - 为应用选择显示器
- python - 如何使用烧瓶从 SQLalchemy 中检索一行
- python - 通过 Python 访问 Sharepoint
- python - Tweepy:收集两个搜索词列表中至少有 1 个词的推文
- c - 如何在循环中添加scanf内的数字?
- javascript - 我如何读取嵌套属性并使用 javascript 推送到数组?
- identityserver4 - 如何配置在 .Net Framework 4.7.1 上运行的 mvc 客户端以使用在 .Net Core 上运行的 IdentityServer4 (3.1) 进行身份验证
- python - Seaborn Barplot 如何在一个栏中包含多个值