首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL动态加减行

MySQL动态加减行
EN

Stack Overflow用户
提问于 2014-04-19 16:19:07
回答 3查看 391关注 0票数 0

价目表:

代码语言:javascript
复制
date       | price
------------------
2014-01-01   100
2014-01-02   20
2014-01-03   -30
2014-01-04   70
...

是否可以使用SQL查询显示结果表?

成果表:

代码语言:javascript
复制
date       | price  | total
--------------------------
2014-01-01   100     100
2014-01-02   20      120
2014-01-03   -30     90
2014-01-04   70      160
...
  1. “结果表”不是一个exist表,它只是sql结果。
  2. “总计”一栏应用加法和减法显示客户余额的最后状态

是否可以编写此SQL查询?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-04-19 16:22:41

代码语言:javascript
复制
select date, 
       price,
       @total := @total + price as total
from (select date, price
      from your_table
      order by date) x
CROSS JOIN (select @total := 0) r
票数 1
EN

Stack Overflow用户

发布于 2014-04-19 16:21:30

代码语言:javascript
复制
select date, 
       @total := @total + price as running_total, 
       price
from your_table, (select @total := 0) r
order by date
票数 1
EN

Stack Overflow用户

发布于 2014-04-19 16:24:04

使用相当标准的SQL;

代码语言:javascript
复制
SELECT *, (SELECT SUM(price) 
           FROM pricetable p 
           WHERE p.date<=pricetable.date) total
FROM pricetable
ORDER BY date;

一个要测试的SQLfiddle

...or向左转.

代码语言:javascript
复制
SELECT *, SUM(p2.price) total
FROM pricetable p1
LEFT JOIN pricetable p2
  ON p1.date >= p2.date
GROUP BY p1.date, p1.price
ORDER BY p1.date;

另一个SQLfiddle

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23172423

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档