2016-09-01 2 views
0

У меня есть сценарийQlikView - сумма в сценарии

LOAD * INLINE [ 
Document, Date, Itam, Line, Saldo, Unit 
Doc1, 12.12.2015, Item1, 1, 10, m 
Doc1, 3.04.2015, Item2, 2, 15, kg 
Doc2, 11.09.2015, Item1, 1, 6, kg 
Doc3, 11.04.2015, Item1, 1, 13, m 
Doc3, 21.03.2015, Item5, 2, 45, l 
Doc4, 20.04.2016, Item4, 1, 7, l 
Doc5, 12.01.2016, Item1, 1, 13, kg 
Doc6, 7.09.2016, Item3, 1, 16, m 
Doc6, 21.09.2016, Item3, 2, 21, kg 
Doc7, 1.01.2016, Item2, 1, 3, l 
]; 

Я хочу, чтобы получить сумму Saldo в год в сценарии. Как я могу изменить сценарий, чтобы получить что-то вроде этого:

Load 
Year2015, 
SumOfSaldo2015, 
Year2016, 
SumOfSaldo2016 

И когда я называю SumOfSaldo2015 в текстовом поле, чтобы получить сумму Saldo за год 2015

ответ

1

Это кажется немного странным, что нужно сделать, когда вы должны быть в состоянии достичь его с помощью использования измерений в QlikView - просто создать год измерение на основе даты ...

LOAD *, 
right(Date,4) as Year; 
LOAD * INLINE [ 
Document, Date, Itam, Line, Saldo, Unit 
Doc1, 12.12.2015, Item1, 1, 10, m 
Doc1, 3.04.2015, Item2, 2, 15, kg 
Doc2, 11.09.2015, Item1, 1, 6, kg 
Doc3, 11.04.2015, Item1, 1, 13, m 
Doc3, 21.03.2015, Item5, 2, 45, l 
Doc4, 20.04.2016, Item4, 1, 7, l 
Doc5, 12.01.2016, Item1, 1, 13, kg 
Doc6, 7.09.2016, Item3, 1, 16, m 
Doc6, 21.09.2016, Item3, 2, 21, kg 
Doc7, 1.01.2016, Item2, 1, 3, l 
]; 

Или, если вы после того, как только консолидированное представление ...

Temp: 
LOAD *, 
right(Date,4) as Year; 
LOAD * INLINE [ 
Document, Date, Itam, Line, Saldo, Unit 
Doc1, 12.12.2015, Item1, 1, 10, m 
Doc1, 3.04.2015, Item2, 2, 15, kg 
Doc2, 11.09.2015, Item1, 1, 6, kg 
Doc3, 11.04.2015, Item1, 1, 13, m 
Doc3, 21.03.2015, Item5, 2, 45, l 
Doc4, 20.04.2016, Item4, 1, 7, l 
Doc5, 12.01.2016, Item1, 1, 13, kg 
Doc6, 7.09.2016, Item3, 1, 16, m 
Doc6, 21.09.2016, Item3, 2, 21, kg 
Doc7, 1.01.2016, Item2, 1, 3, l 
]; 

Saldo: 
LOAD 
Year AS Year, 
sum(Saldo) as SumOfSaldo 
RESIDENT TEMP 
GROUP BY Year; 

Однако, если вам действительно нужно, чтобы сделать это, вы могли бы сделать что-то вроде ...

Temp: 
LOAD *, 
right(Date,4) as Year; 
LOAD * INLINE [ 
Document, Date, Itam, Line, Saldo, Unit 
Doc1, 12.12.2015, Item1, 1, 10, m 
Doc1, 3.04.2015, Item2, 2, 15, kg 
Doc2, 11.09.2015, Item1, 1, 6, kg 
Doc3, 11.04.2015, Item1, 1, 13, m 
Doc3, 21.03.2015, Item5, 2, 45, l 
Doc4, 20.04.2016, Item4, 1, 7, l 
Doc5, 12.01.2016, Item1, 1, 13, kg 
Doc6, 7.09.2016, Item3, 1, 16, m 
Doc6, 21.09.2016, Item3, 2, 21, kg 
Doc7, 1.01.2016, Item2, 1, 3, l 
]; 

Saldo: 
LOAD 
Year AS Year2015, 
sum(Saldo) as SumOfSaldo2015 
RESIDENT TEMP 
GROUP BY Year 
WHERE Year = 2015; 

CONCATENATE(Saldo) 
LOAD 
Year AS Year2016, 
sum(Saldo) as SumOfSaldo2016 
RESIDENT TEMP 
GROUP BY Year 
WHERE Year = 2016; 

DROP TABLE Temp; 
+0

Спасибо большое .... – pape