有函数case when then ,原来数据窗口函数在sql中也好用,我的分数给流方了,因为他提醒了我。
因为在sql中计算,这样可以在dw中得到两个编辑列
(case when "qcjz_client"."money">0 then "qcjz_client"."money" else null) as 'ys',
case when "qcjz_client"."money">0 then "qcjz_client"."money" else null) as 'yf'
FROM "qcjz_client"
完成的很好。
加一个字段为方向字段,输入时可应付或应收就可以了,数据库中可以只用两列,
前面加的字段可以为逻辑字段(或类似的),为真时为应收,为假时为应付,
汇总查询也很方便。
如
select 方向* 金额 as 往来余额 from qcjz_client;
或
select sum(case 方向 then 金额 else 0) as 应收款发生额,
sum(case 方向 then 0 else 金额) as 应付款发生额
FROM qcjz_client
我用了这个语句:
SELECT (sign("qcjz_client"."money")+1)*"qcjz_client"."money"/2 as 'ys',
(sign("qcjz_client"."money")-1)*"qcjz_client"."money"/2 as 'yf'
FROM "qcjz_client"
可以解决,但是要有这个函数
SELECT if("qcjz_client"."money">0,"qcjz_client"."money",0) as 'ys',
if("qcjz_client"."money"<0,"qcjz_client"."money",0) as 'yf'
FROM "qcjz_client"
可是pb中只有ifnull(x,y,z)函数