• QlikView一年计算,以最新的销售数据


    总销量的新财年后年初今天是非常需要的学生经常会遇到,有两种思路:

    1. 能Load当数据是生成一个称为场YTDFlag。这是本财年的时刻,本场会1,除此以外,0。因此,在报告中可使用非常方便Sum(Sales * YTDFlag)以获得所需的KPI。

    Load数据的Script例如以下所看到的:

    SalesData:
    LOAD
    	Num(ID) as ID,
    	Date(Date) as Date,
    	Month,
    	Num(Year) as Year,
    	Num(Sales) as Sales,
    	InYearToDate(Date(Date), Today(), 0, 10) as YTDFlag
    Inline [
    ID, Date, Month, Year, Sales
    1, 2012-1-1, 2012-1, 2012, 20
    2, 2012-1-1, 2012-2, 2012, 21
    3, 2012-1-1, 2012-3, 2012, 23
    4, 2013-1-1, 2013-1, 2013, 34
    5, 2013-2-1, 2013-2, 2013, 35
    6, 2013-3-1, 2013-3, 2013, 46
    7, 2014-1-1, 2014-1, 2014, 27
    8, 2014-2-1, 2014-2, 2014, 30
    9, 2014-3-1, 2014-3, 2014, 49
    10, 2013-10-1, 2013-10, 2013, 50
    11, 2013-11-1, 2013-11, 2013, 51
    12, 2013-12-1, 2013-12, 2013, 52
    ];


    2. 当然也能够在报表中直接用公式来得到, 公式为 =Sum(Sales * InYearToDate(Date, Today(), 0, 10) * -1)。

    上面两种方式得到的结果都是 259,数据量大的时候当然是前面先计算更好,不必把全部的计算都在前台实现。这样会影响性能。

    当中关键方法InYearToDate有四个參数,意思是:

    第一个參数是否和第二个參数在同一年;

    第三个參数表示,第二个參数的年份须要减多少年。0表示第一个參数直接和第二个參数相比(第二个參数的年份减0),-1表示第二个參数的年份须要减1。再和第一个參数相比較,以此类推。也就是说。第二个參数的年份须要减去第三个參数代表的多少年。然后再和第一个參数相比。

    第四个參数是可选的,表示一年从第几个月開始,上面第四个參数是10,则表示,10月1号算作新年第一天。第一个參数是否是和第二个參数在以10月1号为第一天的一年里。

    假如是则公式返回-1。否则为0.

    上面我的样例表示:10月1号为新年的第一天。因为第三个參数是0,因此第一个參数直接和第二个參数比較,表示Date字段中的值是否和今天在以10月1号为新年開始的一年里。比方2013-11-1是。2013-09-31则不是。

    InYearToDate(Date, Today(), -1, 10)则表示Date中的字段和去年的今天(Today()的年份减一)相比,是否在以10月1号開始的一年里。

    我的语言是不是很好,目前还不清楚留言。

    版权声明:本文博客原创文章,博客,未经同意,不得转载。

  • 相关阅读:
    System.Collections.Generic.IEnumerable.cs
    System.Collections.IList.cs
    茶-保健茶:松针茶
    中药-中药名:松针
    植物:松树
    LDAP-常用命令
    dsadm-dsconf数据导入导出
    SUN-LDAP6.3_RHEL 5.0-卸载LDAP
    passwd-shadow文件
    文件及目录的权限
  • 原文地址:https://www.cnblogs.com/mfrbuaa/p/4713127.html
Copyright © 2020-2023  润新知