Mysql
 sql >> база данни >  >> RDS >> Mysql

MySQL SUM със същия идентификатор

Опитайте следното текущо общо:http://www.sqlfiddle.com/#!2/ ce765/1

изберете оферта като не, стойност, @rt :=if(aid =@last_id, @rt + стойност, стойност) като общо, @last_id :=aidfrom table_b b, (изберете @rt :=0 като x, @last_id :=null) като подреждане на опции по b.bid, b.aid; 

Изход:

<предварителен код>| НЕ | СТОЙНОСТ | ОБЩО | @LAST_ID :=ПОМОЩ ||----|-------|-------|-----------------|| 1 | 10 | 10 | 1 || 2 | 15 | 25 | 1 || 3 | 5 | 5 | 2 || 4 | 10 | 15 | 2 || 5 | 25 | 25 | 3 || 6 | 40 | 65 | 3 |

След това се присъединете към таблица А, последна заявка:

изберете x.no, x.aid, x.value, x.total, a.value - x.total като баланс от( изберете оферта като не, помощ, стойност, @rt :=if(aid =@last_id, @rt + стойност, стойност) като общо, @last_id :=помощ от table_b b, (изберете @rt :=0 като x, @last_id :=null) като vars подреждане по b.bid, b.aid) като xjoin table_a a using(aid) 

Изход:

<предварителен код>| НЕ | ПОМОЩ | СТОЙНОСТ | ОБЩО | БАЛАНС ||----|-----|-------|-------|---------|| 1 | 1 | 10 | 10 | 90 || 2 | 1 | 15 | 25 | 75 || 3 | 2 | 5 | 5 | 45 || 4 | 2 | 10 | 15 | 35 || 5 | 3 | 25 | 25 | 125 || 6 | 3 | 40 | 65 | 85 |

Тест на живо:http://www.sqlfiddle.com/#!2/ce765/ 1

АКТУАЛИЗИРАНЕ

Не зависи от оферта в графа сортирането, текущата сума при групиране няма да бъде засегната:http://www.sqlfiddle. com/#!2/6a1e6/3

изберете x.no, x.aid, x.value, x.total, a.value - x.total като баланс от (изберете @rn :=@rn + 1 като не, помощ, стойност, @ rt :=if(aid =@last_id, @rt + стойност, стойност) като общо, @last_id :=помощ от table_b b, (изберете @rt :=0 като x, @last_id :=null, @rn :=0 ) като vars подреждане по b.aid, b.bid) като xjoin table_a a using(aid) 

Изход:

<предварителен код>| НЕ | ПОМОЩ | СТОЙНОСТ | ОБЩО | БАЛАНС ||----|-----|-------|-------|---------|| 1 | 1 | 10 | 10 | 90 || 2 | 1 | 15 | 25 | 75 || 3 | 1 | 7 | 32 | 68 || 4 | 2 | 5 | 5 | 45 || 5 | 2 | 10 | 15 | 35 || 6 | 3 | 25 | 25 | 125 || 7 | 3 | 40 | 65 | 85 |

Тест на живо:http://www.sqlfiddle.com/#!2/6a1e6/ 3



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Запитвания, свързани с производителността на Phalcon

  2. Как да намерите най-често срещаните думи в MySQL база данни и да осредните втора колона

  3. Не получавате желания резултат след изпълнение на QoQ

  4. MySQL импортиране на база данни, но игнорирайте конкретна таблица

  5. Издаване на конкатенация на редове с дубликати