sql - 创建 SQL 查询以查找 2021 年和 2020 年的发票总和,并在 SQL 中计算 2021 年的增长百分比
问题描述
我是新手,正在尝试解决问题。我有两张桌子Invoice
和InvoiceLineItem
. 我能够找到 2021 年和 2020 年的总数,但无法计算 2021 年的增长百分比。我知道增长百分比规则,但无法通过连接两个表格来实施它。
这是我的代码:
SELECT
SUM (UnitPrice * UnitQuantity) AS 'Grand Total 2021 & 2020'
FROM
dbo.Invoicelineitem
LEFT JOIN
dbo.Invoice ON dbo.Invoicelineitem.InvoiceKey = dbo.Invoice.InvoicKey
WHERE
dbo.Invoice.InvoiceDate LIKE '2021%'
OR dbo.Invoice.InvoiceDate LIKE '2020%';
解决方案
您可以使用条件聚合:
Select SUM(CASE WHEN YEAR(i.InvoiceDate) = 2020 THEN UnitPrice*UnitQuantity END),
SUM(CASE WHEN YEAR(i.InvoiceDate) = 2021 THEN UnitPrice*UnitQuantity END)
(SUM(CASE WHEN YEAR(i.InvoiceDate) = 2021 THEN UnitPrice*UnitQuantity END) /
SUM(CASE WHEN YEAR(i.InvoiceDate) = 2020 THEN UnitPrice*UnitQuantity END)
) as ratio
From dbo.Invoicelineitem ili JOIN
dbo.Invoice i
ON ili.InvoiceKey = i.InvoicKey
where i.InvoiceDate >= '2020-01-01' AND
i.InvoiceDate < '2022-01-01';
请注意, aLEFT JOIN
是不必要的。
您可以根据需要调整公式。
推荐阅读
- c# - 指定动作
回调作为带有 xml 的数据,可能带有 cref 属性? - azure-devops - 如何将本地 VS 项目添加到现有的非空 Azure DevOps Repo
- angular - Angular 6 - 在单击的项目上切换类别并在其他项目上切换类别
- laravel - 无法将 str_random() 生成的数字存储到 MySQL
- bash - 将文本文件集的内容复制到其他文本文件集
- c++ - 将 $(location) 传递给 Bazel --test_arg
- python - Python 3 中的服务目录
- kubernetes - Kubernetes 节点未就绪:ContainerGCFailed / ImageGCFailed 上下文期限已超过
- php - SEO 问题 Google 将我的网站 URL 编入索引两次
- c - 循环中的表格未正确显示数据