MySQL从相同的值计算

MySQL从相同的值计算,mysql,Mysql,我有一个疑问: SELECT `item_code`, `q_rr`, `q_srs`, @running_bal := @running_bal + (`q_rr` - `q_srs`) as `Balance` FROM records, (SELECT @running_bal := 0) tempName order by records.item_code, records.date 其结果是: item

我有一个疑问:

SELECT `item_code`, 
       `q_rr`, 
       `q_srs`, 
       @running_bal := @running_bal + (`q_rr` - `q_srs`)  as `Balance`
FROM   records, (SELECT @running_bal := 0) tempName
order by
      records.item_code,
      records.date
其结果是:

 item_code  |  q_rr  | q_srs |    balance
--------------------------------------------
 0F02206A       2        0           2
 BR00113D       3        0           5
 BR00114D       10       0           15
 BR00114D       0        1           14
 BR00114D       0        1           13
 BR00115D       20       0           33
 BR00115D       0        1           32
 BR00115D       0        1           31
如果q_rr(+)和q_srs(-),需要帮助生成计算余额的结果,并根据项目代码进行计算

 item_code  |  q_rr  | q_srs |    balance
--------------------------------------------
 0F02206A       2        0           2
 BR00113D       3        0           3
 BR00114D       10       0           10
 BR00114D       0        1           9
 BR00114D       0        1           8
 BR00115D       20       0           20
 BR00115D       0        1           19
 BR00115D       0        1           18
试试这个:

SELECT `item_code`, 
       `id`, 
       `type`, 
       @running_bal := case when type = 0 then id
       else @running_bal + (`id` - `type`) end as `Balance`
FROM   supportContacts, (SELECT @running_bal := 0) tempName
order by
      supportContacts.item_code

我添加了
@code
变量来跟踪
项目\u代码
更改:

SELECT
  r.item_code,
  r.q_rr, 
  r.q_srs,
  @running_bal := IF(@code = r.item_code, @running_bal, 0) + (r.q_rr - r.q_srs) as Balance,
  @code := r.item_code AS dummy
FROM
  records r
CROSS JOIN
  (SELECT @running_bal := 0, @code := '') tempName
ORDER BY
  r.item_code,
  r.date
SQL Fiddle:

您可以通过将此列作为子查询放入另一个select中来消除
伪列

SELECT item_code, q_rr, q_srs, Balance
FROM (
  -- there put first query
) r

SQL Fiddle:

您能帮助在sqlfiddle中创建并共享链接吗?