日期空间选择时间,还能做同比嘛

如图,做了日期查询,如果做同比的话应该怎么搞呢?

image.png

FineReport Filasy 发布于 2024-10-25 15:48
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共5回答
最佳回答
0
CD20160914Lv8专家互助
发布于2024-10-25 15:49(编辑于 2024-10-25 15:55)

再写一个数据集查询同比的值,然后用value函数按条件查询数据出来就行了。这个是简单的方式

sql server中查询当期与同期数据

SELECT 

    YEAR(SaleDate) AS SaleYear,

    SUM(Amount) AS TotalSales,

    LAG(SUM(Amount), 1) OVER (ORDER BY YEAR(SaleDate)) AS PreviousYearSales,

    CASE 

        WHEN LAG(SUM(Amount), 1) OVER (ORDER BY YEAR(SaleDate)) IS NULL THEN NULL

        ELSE (SUM(Amount) - LAG(SUM(Amount), 1) OVER (ORDER BY YEAR(SaleDate))) / LAG(SUM(Amount), 1) OVER (ORDER BY YEAR(SaleDate)) * 100

    END AS YearOverYearGrowth

FROM 

    Sales

GROUP BY 

    YEAR(SaleDate)

ORDER BY 

    SaleYear;

---------------------------------------------------------------------------------------‘

----------------------------------------------------------------------------------------

mysql5的版本没有窗口函数取同期

SELECT 

    YEAR(s1.SaleDate) AS SaleYear,

    SUM(s1.Amount) AS TotalSales,

    (SELECT SUM(s2.Amount)

     FROM Sales s2

     WHERE YEAR(s2.SaleDate) = YEAR(s1.SaleDate) - 1) AS PreviousYearSales,

    CASE 

        WHEN (SELECT SUM(s2.Amount)

              FROM Sales s2

              WHERE YEAR(s2.SaleDate) = YEAR(s1.SaleDate) - 1) IS NULL THEN NULL

        ELSE (SUM(s1.Amount) - (SELECT SUM(s2.Amount)

                                FROM Sales s2

                                WHERE YEAR(s2.SaleDate) = YEAR(s1.SaleDate) - 1)) / (SELECT SUM(s2.Amount)

                                                                                        FROM Sales s2

                                                                                        WHERE YEAR(s2.SaleDate) = YEAR(s1.SaleDate) - 1) * 100

    END AS YearOverYearGrowth

FROM 

    Sales s1

GROUP BY 

    YEAR(s1.SaleDate)

ORDER BY 

    SaleYear;

最佳回答
0
用户k6280494Lv6资深互助
发布于2024-10-25 15:49

单独写一个同比的数据集

最佳回答
0
ID1208Lv6高级互助
发布于2024-10-25 15:49

增加一列辅助列,数据为去年同期数据,然后公式计算同比

最佳回答
0
快乐星光Lv5中级互助
发布于2024-10-25 16:07

再写一个数据集,日期用公式写死为$日期参数的同比日期。把同比ds的金额放到同比单元格,然后做单元格过滤:日期=日期 and 供应商=供应商

最佳回答
0
WZXLv5初级互助
发布于2024-10-28 08:46

也可以试试将日期作为参数传入,在传入参数里将日期处理为同期,同时过滤供应商单元格,把父格作为过滤条件去掉勾选 。MONTHDELTA(DATE(YEAR($开始年月),MONTH($开始年月),1),-12)

image.pngimage.png

  • 6关注人数
  • 183浏览人数
  • 最后回答于:2024-10-28 08:46
    请选择关闭问题的原因
    确定 取消
    返回顶部