1

我正在尝试用peek函数填充两者之间日期的缺失值。我使用了以下代码,但我仍然无法得到我正在寻找的结果

Table:
LOAD * INLINE [
    Date, Article, Quantity
    01/02/2021, A, 10
    03/02/2021, A, 20
    06/02/2021, B, 30
    07/02/2021, C, 40
];

Join(Table)
LOAD
    Date(MinDate+IterNO ()-1) as Date
While
  (MinDate+IterNO ()-1) <= Num(MaxDate -1)
;

LOAD
  Min(Date) as MinDate,
  Max(Date) As MaxDate
Resident 
  Table
;

Join(Table)
Load
  If( Len(Quantity) = 0, peek('newQuantity'), Quantity) as newQuantity
Resident 
  Table
;

结果

非常感谢你的帮助

4

1 回答 1

0

我尝试了一种解决方法

SET ThousandSep=' ';
SET DecimalSep=',';
SET MoneyThousandSep=' ';
SET MoneyDecimalSep=',';
SET MoneyFormat='# ##0,00 €;-# ##0,00 €';
SET TimeFormat='hh:mm:ss';
SET DateFormat='DD/MM/YYYY';
SET TimestampFormat='DD/MM/YYYY hh:mm:ss[.fff]';
SET MonthNames='janv.;févr.;mars;avr.;mai;juin;juil.;août;sept.;oct.;nov.;déc.';
SET DayNames='lun.;mar.;mer.;jeu.;ven.;sam.;dim.';
A:
LOAD * ,
Date(Date) as Date1
;

LOAD * INLINE [
    Date, Article, Quantity
    01/02/2021, A, 10
    01/02/2021, B, 12
    03/02/2021, A, 20
    06/02/2021, B, 30
    07/02/2021, C, 40
];

//required for generating calendar for all the months
maxMin:
LOAD Date(Max(Date1)) as maxdate,
Date(min(Date1)) as mindate
Resident A;

LET vStartDate = num(Peek('mindate',0,'maxMin'));
LET vEndDate = num(Peek('maxdate',0,'maxMin'));


//Calendar to generate all the months
 Calendar:

LOAD
Date($(vStartDate) + RangeSum(Peek('RowNum'), 1) - 1) AS Date,
RangeSum(Peek('RowNum'), 1) AS RowNum
AutoGenerate vEndDate - vStartDate + 1;

///Joining the Existing date with the calendar generated months 
B:
LOAD  
Date(max(Date)) as Date,
RowNo() as rowno
Resident Calendar
Group By Date
;
left Join 
LOAD Date,Article,Quantity
Resident A;



//Final table
NoConcatenate
C:
LOAD Date,
rowno,
if(IsNull(Article),Peek(Article),Article) as Article,
if(IsNull(Quantity),Peek(Quantity),Quantity) as Quantity
Resident B
Order by rowno;

DROP Tables A,Calendar,B,maxMin;

问题是我需要为每个日期显示之前数量的所有文章(如果不是零),该程序仅使用最后一篇文章和数量填充缺失的日期,如下所示:[![results][1]][1]我正在寻找的是日期 01/02/2021 :

日期 文章 数量
2021 年 1 月 2 日 一个 10
2021 年 1 月 2 日 12
2021 年 1 月 2 日 C 0
2021 年 2 月 2 日 一个 10
2021 年 2 月 2 日 12
2021 年 2 月 2 日 C 0
2021 年 3 月 2 日 一个 20
2021 年 3 月 2 日 12
2021 年 3 月 2 日 C 0

基本上我需要按文章或我不知道该怎么做的东西来汇总,谢谢您的帮助。[1]:https ://i.stack.imgur.com/VJEJi.png

于 2021-03-18T10:26:26.970 回答