计算年初至今重复

Posted

技术标签:

【中文标题】计算年初至今重复【英文标题】:Calculate year to date duplicate 【发布时间】:2019-05-16 08:49:37 【问题描述】:

我正在尝试计算年初至今

我试试这个脚本,它返回的值很好,但是太慢了

select 
        T.Delivery_month,
    T.[Delivery_Year],
    Sales_Organization,
    SUM(QTY) as Month_Total,

    COALESCE(
        (
            select SUM(s2.QTY) 
            FROM stg.Fact_DC_AGG s2 
            where 
                s2.Sales_Organization = T.Sales_Organization 
                and  s2.[Delivery_Year]=T.[Delivery_Year]
                AND s2.Delivery_month<= T.Delivery_month

        ),0) as YTD_Total
from  stg.Fact_DC_AGG T
group by 
    T.Delivery_month,
    T.[Delivery_Year],
    Sales_Organization
ORDER BY 
    Sales_Organization,T.[Delivery_Year],
T.Delivery_month

我对其进行了修改以优化它,但它返回错误值和重复值:

select 
        T.Delivery_month,
    T.[Delivery_Year],
    Sales_Organization,
    SUM(QTY) as Month_Total,

    COALESCE(
        (


        ),0) as YTD_Total
from  stg.Fact_DC_AGG T
INNER JOIN stg.Fact_DC_AGG s2 
            ON  
                s2.Sales_Organization = T.Sales_Organization 
                and  s2.[Delivery_Year]=T.[Delivery_Year]
                AND s2.Delivery_month<= T.Delivery_month
group by 
    T.Delivery_month,
    T.[Delivery_Year],
    Sales_Organization
ORDER BY 
    Sales_Organization,T.[Delivery_Year],
T.Delivery_month

如何优化查询或纠正第二个脚本?

【问题讨论】:

真的还在使用 SQL Server 2008R2 吗? 2008 和 2008R2 还剩不到 2 个月的支持时间,都不支持 Window Functions 做累计和。三角连接可能会变得非常昂贵,因此如果您在 2012 年以上,则可以通过摆脱它来进行大优化。 通过升级到受支持的 SQL Server 版本并使用 2012 年及以后提供的累积和功能来优化查询。 您的查询会为表中的每一年/每月生成值。一般来说,没有人比较多年数据(或者是几十年?)的 YTD 值。如果你这样做了,那么你预计计算会有点慢。你在这里的真正目标是什么?您是否正在针对狭窄且很少使用的用例优化查询? 2天前问的大致相同的问题没有回应。 【参考方案1】:

首先要删除查询的optimize the performance,您必须删除子查询并使用联接而不是子查询,还需要为查询生成实际执行计划并确定所需的missing index。

注意:缺少索引可能会影响您的 SQL Server 性能,从而降低您的 SQL Server 性能,因此请务必查看您的实际查询执行计划并确定正确的索引。

欲了解更多信息,请访问以下链接。

1) SQL Server Basic Performance Tuning Tips and Tricks

2)Create Missing Index From the Actual Execution Plan

【讨论】:

以上是关于计算年初至今重复的主要内容,如果未能解决你的问题,请参考以下文章

c#:如何获取特定时间段的上一个年初至今和上一个月初至今?

POWER PIVOT 进阶篇

Power BI--DAX函数总结

财政年度年初至今累计

OBIEE 年初至今的问题

云计算竞争进入深水区 专有云市场成新赛道