Heim > Datenbank > MySQL-Tutorial > QlikView计算年初到今天为止的销售数据

QlikView计算年初到今天为止的销售数据

WBOY
Freigeben: 2016-06-07 16:01:39
Original
962 Leute haben es durchsucht

新财年年初到今天的销售总和是很多同学经常遇到的需求,有两种思路: 1. 可以在Load数据的时候就生成一个字段叫YTDFlag,即是当下这个财年的该字段就为1,否则为0。因此在报表中可以很方便的用Sum(Sales * YTDFlag)来得到想要的KPI。 Load数据的Script如下所

新财年年初到今天的销售总和是很多同学经常遇到的需求,有两种思路:

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
];
Nach dem Login kopieren

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号开始的一年里。

我的语文不是太好,不清楚的地方欢迎留言!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage