首页 > 解决方案 > 创建 SQL 查询以查找 2021 年和 2020 年的发票总和,并在 SQL 中计算 2021 年的增长百分比

问题描述

我是新手,正在尝试解决问题。我有两张桌子InvoiceInvoiceLineItem. 我能够找到 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%';

标签: sql

解决方案


您可以使用条件聚合:

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是不必要的。

您可以根据需要调整公式。


推荐阅读