lag偏移问题

WITH RECURSIVE date_range AS (

  SELECT '2023-08-31' AS date

  UNION ALL

  SELECT DATE_ADD(date, INTERVAL 1 DAY)

  FROM date_range

  WHERE DATE_ADD(date, INTERVAL 1 DAY) <= CURDATE()

),

C AS (SELECT date,ods_dim_fund.ITEMID AS id

FROM date_range 

JOIN ods_dim_fund

WHERE ods_dim_fund.TYPE = '子公司' 

order by date),

B AS (

SELECT DATE,ID,现金收入,银行收入,银行支出,现金支出,(现金收入+银行收入-银行支出-现金支出) AS 当日余额,(银行支出+现金支出) AS 当日支出

FROM

(

SELECT DATE,ID,IFNULL(现金收入,0) AS 现金收入,

IFNULL(银行收入,0) AS 银行收入,

IFNULL(银行支出,0) AS 银行支出,

IFNULL(现金支出,0) AS 现金支出

FROM C

LEFT JOIN 日报

ON C.ID = 日报.pitemid AND

C.DATE = 日报.时间

ORDER BY DATE)TT),

A AS (SELECT  

date,

id,

银行支出,

现金支出,

SUM(现金收入) OVER (PARTITION by id order  BY date) AS 累计现金,

SUM(银行收入) OVER (PARTITION by id order  BY date) AS 累计银行,

SUM(当日余额) OVER (PARTITION by id order  BY date) AS 累计余额

FROM B

ORDER BY ID)

SELECT date,

id,累计现金,累计银行,累计余额,

 LAG(累计现金) OVER (PARTITION by id order  BY date) AS 上日现金,

 LAG(累计银行) OVER (PARTITION by id order  BY date) AS 上日银行,

  LAG(累计余额) OVER (PARTITION by id order  BY date) AS 上日余额

 FROM A

 where date = '2023-10-11'

 ORDER BY ID,DATE

image.png

累计收入数据是都有的  但是为什么限定日期后lag偏移完以后是没有的

不限定date:image.png

FineReport 帆软用户A5K1Xo5JDb 发布于 2023-11-3 16:43
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共1回答
最佳回答
0
luojian0323Lv7资深互助
发布于2023-11-3 16:49

数据只剩where date = '2023-10-11' 这一天了,lag跨行取不到上一天的数据了呀。

  • 2关注人数
  • 100浏览人数
  • 最后回答于:2023-11-3 16:49
    请选择关闭问题的原因
    确定 取消
    返回顶部