我有一个类似下面的输入
DECLARE
cursor date_list
IS
WITH year_dates (active_date) AS
(
SELECT to_date('1997-01-01','YYYY-MM-DD')
FROM DUAL
UNION ALL
SELECT active_date + 1
FROM year_dates
WHERE active_date < to_date('1998-01-01','YYYY-MM-DD')
) SELECT active_date
FROM year_dates;
l_date date_list%ROWTYPE;
l_count NUMBER;
BEGIN
OPEN date_list;
LOOP
FETCH date_list INTO l_date;
EXIT WHEN date_list%NOTFOUND;
SELECT COUNT(emplid)
INTO l_count
FROM ps_job a
WHERE effdt = (SELECT max(a1.effdt) FROM ps_job a1 WHERE a1.emplid = a.emplid AND a1.effdt < l_date.active_date)
AND effseq = (SELECT max(a1.effseq) FROM ps_job a1 WHERE a1.emplid = a.emplid AND a1.effdt = a.effdt)
AND deptid NOT LIKE 'XX%'
AND hr_status = 'A'
AND company = 'ABC';
dbms_output.put_line(l_date.active_date || ',' || l_count);
END LOOP;
END;
/
我想计算以行为单位的周数和上周的差额以及最后-过去3周的值
所以我已经制定了以下措施
Name WK pirce
AA 1 10
BB 2 20
CC 3 30
DD 4 20
AA 4 10
BB 4 20
上周差异
Total = SUM('Table'[Price])
平均-过去3周的差异
Difference =
var LWK=CALCULATE(MAX('Table'[WK]),all('Table'))
Var BLWK=CALCULATE(MAX('Table'[WK])-1,all('Table'))
var D1=CALCULATE([Total],'Table'[WK]=LWK)
var D2=CALCULATE([Total],'Table'[WK]=BLWK)
return
IF(ISINSCOPE('Table'[WK]),SUM('Table'[Price]),D1-D2)
使用矩阵我已经达到了以下目标
如果我添加LWK_avg,则会得到以下结果
我想不加测量就得到结果,只是在最后添加LWK_avg