微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我想在ssrs上显示当前月份,年初至今和上一年至今

如何解决我想在ssrs上显示当前月份,年初至今和上一年至今

Data Presentation

想在sql视图上计算年初至今的日期和上一年至今的当前日期,以便简单地在ssrs上进行数据表示,以使其运行更快。有没有一种方法可以编写可以执行此操作的视图?

解决方法

忽略了一个事实,我认为您在以前的YTD摘要编号中有一些错误。

我按照您的示例重新创建了数据

CREATE TABLE #t (TransDate date,Customer varchar(30),Amount float)

INSERT INTO #t VALUES
('2020-09-21','Customer 1',200),('2020-09-22','Customer 2',300),('2020-08-03',450),('2020-08-04',1200),('2019-09-14',859),('2019-02-05',230),('2019-07-26',910),('2019-11-17',820)

然后,下面的语句将满足您的需求。这不是最优雅的方法,但是它很容易转换为视图,这是我当时所能想到的一切。

SELECT 
    m.Customer,m.MTD as [Current Month],y.YTD as [Current YTD],p.YTD as [Previous YTD]
FROM (
        SELECT Customer,Yr = Year(TransDate),Mn = MONTH(TransDate),MTD = SUM(Amount) FROM #t t WHERE MONTH(TransDate) = MONTH(GetDate()) and YEAR(TransDate) = YEAR(GetDate())
            GROUP by Customer,YEAR(TransDate),MONTH(TransDate)
    ) m 
    JOIN (SELECT Customer,Yr = YEAR(TransDate),YTD = SUM(Amount) FROM #t t  GROUP by Customer,YEAR(TransDate)) y on m.Customer =y.Customer and m.Yr = y.Yr
    JOIN (SELECT Customer,YEAR(TransDate)) p on y.Customer =p.Customer and y.Yr = p.Yr + 1

这给出了以下结果(与您的示例不匹配,但我认为您的示例不正确)

enter image description here

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。