【发布时间】:2018-09-01 03:30:57
【问题描述】:
现在我需要进行类似的查询,但需要几个条件 这是我的桌子
`transaksi` (`transid`, `idpinj`, `tanggal`,`sisapokok`, `sisajasa`
(1, 1, '2018-01-01', 1000, 100, 1),
(2, 1, '2018-01-05', 1000, 100, 3),
(3, 2, '2018-02-04', 1000, 100, 4),
(4, 2, '2018-02-08', 1000, 100, 5),
(5, 1, '2018-02-19', 1000, 100, 3),
(6, 3, '2018-02-22', 1000, 100, 2),
(7, 2, '2018-03-09', 1000, 100, 3),
(8, 3, '2018-03-10', 1000, 100, 3)
(9, 3, '2018-03-12', 1000, 100, 4)
(10, 1, '2018-03-17', 1000, 100, 4)
(11, 4, '2018-03-19', 1000, 100, 3)
(12, 2, '2018-03-20', 1000, 100, 4)
从上表我需要得到如下输出
Month sisapokok sisajasa
Jan-2018 1000 100 ->row2
Feb-2018 4000 400 ->+ row3+5
Mar-2018 12000 1200 ->+ row9+10+11+12
- 首先,我需要为每个 idpinj 获取 sum(sisapokok) 和 sum(sisajasa),其中日期为 max(tanggal),状态介于 3 和 4 之间。然后该值总计为每月总和
- 过去 12 个月每个月的累计金额
我尝试了这个查询,但它从所有记录中获取 max(date),而不是按月和每个 idpinj 获取 max(date)。
SELECT a.idpinj,a.sisapokok
FROM transaksi a
INNER JOIN
(
SELECT idpinj, MAX(tanggal) tgl
FROM transaksi
GROUP BY idpinj
) b ON a.idpinj = b.idpinj
AND a.tanggal = b.tgl
ORDER BY `a`.`idpinj` ASC
【问题讨论】:
-
很遗憾dbfiddle数据与问题数据或预期结果不匹配。