pgsql开窗用法!

image.png求一语句,数据如查询结果,需要增加一列,期初数据,起初未当月之前所有的结存量的汇总,该语句怎么写?

比如:十月份的期初,是九月及之前的结存量的汇总,九月的期初是八月及之前的结存量的汇总以此类推,

SQL tangshi998 发布于 2023-11-14 15:08
1min目标场景问卷 立即参与
回答问题
悬赏:0 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
tangshi998Lv4初级互助
发布于2023-11-15 11:23

已经搞定了,目前做法是关联了一次当前查询日期的前一个日期

SELECT

a."业务日期" ,

a."分公司",

a."物料名",

a."物料编码",

a."批次号",

coalesce(qc."期初结存量",0) AS "期初结存量",

a."实入主数量",

a."实出主数量",

-- a."主结存量",

coalesce(qc."期初结存量",0)+a."实入主数量" -a."实出主数量" AS "期末结存量"

-- ,

-- sum(a."主结存量") over(partition BY substring(a."业务日期",1,7),a."分公司",a."物料名",a."物料编码",a."批次号" order by substring(a."业务日期",1,7),a."分公司",a."物料名", a."物料编码",a."批次号" desc rows between unbounded preceding and current row) as "上月结存"

FROM

aldate a 

LEFT JOIN (SELECT

to_date("业务日期",'YYYY-MM')::timestamp+ '1 month' AS "日期区间",

"分公司",

"物料名",

"物料编码",

"批次号",

"主结存量" AS "期初结存量"

FROM

aldate 

WHERE

"物料编码" = '0102737'

-- AND substring(a."业务日期",1,7) <='2023-10'

ORDER BY substring("业务日期",1,7)

) qc ON  to_char(qc."日期区间",'YYYY-MM')= a."业务日期" AND qc."分公司"=a."分公司" AND qc."物料名"=a."物料名" AND qc."物料编码"=a."物料编码" AND qc."批次号"=a."批次号" 

--WHERE

-- a."物料编码" = '0102737'

ORDER BY substring(a."业务日期",1,7)

image.png

最佳回答
0
姬迷怎滴Lv5初级互助
发布于2023-11-14 16:39

你是要查一个维度为日期,指标为结存量的累加结果是吗?

  • 0关注人数
  • 195浏览人数
  • 最后回答于:2023-11-15 11:23
    请选择关闭问题的原因
    确定 取消
    返回顶部