各位大神,在处理数据时有一个问题一直没想明白,就是指定itemid具体值时,查询出来数据是正确的,但是不指定,就为空 该怎么改 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() ), A AS (select date_range.date,IFNULL(日报.现金收入,0) AS 现金收入,银行收入,现金支出,银行支出, itemid ,pitemid from date_range LEFT JOIN 日报 on date_range.date = 时间 ) SELECT D.date,上日现金,上日银行,上日余额,累计现金,累计银行,累计余额 FROM ( SELECT date, LAG(累计现金) OVER ( order BY date) AS 上日现金, LAG(累计银行) OVER ( order BY date) AS 上日银行, LAG(累计余额) OVER ( order BY date) AS 上日余额 FROM (SELECT date, SUM(现金收入) OVER (PARTITION by itemid order BY date) AS 累计现金, SUM(银行收入) OVER (PARTITION by itemid order BY date) AS 累计银行, SUM(现金收入 + 银行收入 - 现金支出 - 现金支出) OVER (PARTITION by itemid order BY date) AS 累计余额 from A WHERE date > '2023-08-30' and itemid = '${name}') C)F, (SELECT date, SUM(现金收入) OVER (PARTITION by itemid order BY date) AS 累计现金, SUM(银行收入) OVER (PARTITION by itemid order BY date) AS 累计银行, SUM(现金收入 + 银行收入 - 现金支出 - 现金支出) OVER (PARTITION by itemid order BY date) AS 累计余额 from A WHERE date > '2023-08-30' and itemid = '${name}')D WHERE F.DATE = D.DATE AND DATE_FORMAT(D.DATE, '%Y-%m') = DATE_FORMAT(CURDATE(), '%Y-%m') |