mysql - 如何将单笔订单表转化成累加订单表
PHPz
PHPz 2017-04-17 15:34:01
0
6
402

有表1如下

id name money time
1 mike 6 2016-09-01
2 mike 648 2016-09-01
3 leo 488 2016-09-02
4 mike 6 2016-09-03

如何获得以下表2内容

id name amount time
1 mike 6 2016-09-01
2 mike 654 2016-09-01
3 leo 488 2016-09-02
4 mike 660 2016-09-03
PHPz
PHPz

学习是最好的投资!

모든 응답 (6)
伊谢尔伦

目前自己也想到了一种方式,不知道还有没有更优的相互比较学习一下

select id,name,(select sum(money) from test b where b.name = a.name and b.time <= a.time) as amount,time from test a
    巴扎黑

    谢邀,试试这句~

    SELECT a.id,a.name,SUM(lt.money) as amount FROM test a JOIN test lt ON a.time >= lt.time//如果时间是递增的可以使用id判断 GROUP BY a.money ORDER BY id
      迷茫

      谢谢邀请。是要累加amount字段吗?用用户id做条件累加不可以吗?

        PHPzhong

        可以看看sql中的union关键字

          大家讲道理

          感觉sql并不擅长做这种事,放在代码里面运算会比较好。

          如果是每个用户一条记录的话,那group by + sum即可。

            大家讲道理

            这是存储过程

            DELIMITER $$ DROP PROCEDURE IF EXISTS `get_totaltab`$$ CREATE PROCEDURE `get_totaltab`() BEGIN declare i int default 1; while i < 5 do INSERT INTO book_copy SELECT max(id),name,sum(money),max(time) from book where name=(SELECT name FROM book where id=i) and id<=i; set i = i + 1; end while; END$$ DELIMITER ; CALL get_totaltab()

            这是结果,如下所示

            1 mike 6 2016-09-01 2 mike 654 2016-09-01 3 leo 488 2016-09-02 4 mike 660 2016-09-03
              최신 다운로드
              더>
              웹 효과
              웹사이트 소스 코드
              웹사이트 자료
              프론트엔드 템플릿
              회사 소개 부인 성명 Sitemap
              PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!