Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

एक ही आईडी के साथ MySQL SUM

इस रनिंग टोटल को आजमाएं:http://www.sqlfiddle.com/#!2/ सीई765/1

select  
    bid as no, value,
    @rt := if(aid = @last_id, @rt + value, value) as total,
    @last_id := aid
from table_b b, (select @rt := 0 as x, @last_id := null) as vars
order by b.bid, b.aid;

आउटपुट:

| NO | VALUE | TOTAL | @LAST_ID := AID |
|----|-------|-------|-----------------|
|  1 |    10 |    10 |               1 |
|  2 |    15 |    25 |               1 |
|  3 |     5 |     5 |               2 |
|  4 |    10 |    15 |               2 |
|  5 |    25 |    25 |               3 |
|  6 |    40 |    65 |               3 |

फिर तालिका A में शामिल हों, अंतिम क्वेरी:

select x.no, x.aid, x.value, x.total, a.value - x.total as balance
from
(
  select    
    bid as no, aid, value,
    @rt := if(aid = @last_id, @rt + value, value) as total,
    @last_id := aid
  from table_b b, (select @rt := 0 as x, @last_id := null) as vars
  order by b.bid, b.aid
) as x
join table_a a using(aid)

आउटपुट:

| NO | AID | VALUE | TOTAL | BALANCE |
|----|-----|-------|-------|---------|
|  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. कॉम/#!2/6a1e6/3

select x.no, x.aid, x.value, x.total, a.value - x.total as balance
from
(
  select    
    @rn := @rn + 1 as no, aid, value,
    @rt := if(aid = @last_id, @rt + value, value) as total,
    @last_id := aid
  from table_b b, (select @rt := 0 as x, @last_id := null, @rn := 0) as vars
  order by b.aid, b.bid
) as x
join table_a a using(aid)

आउटपुट:

| NO | AID | VALUE | TOTAL | BALANCE |
|----|-----|-------|-------|---------|
|  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. MySQL, क्या मुझे कनेक्टेड रहना चाहिए या जरूरत पड़ने पर कनेक्ट करना चाहिए?

  2. Mysqlinput में स्कीमा का अनुमान कैसे लगाएं Talend . में फ्लाई पर

  3. नई नियंत्रक विधि में form_for का उपयोग करते समय अपरिभाषित विधि

  4. निम्नलिखित एसक्यूएल कोड का कारण क्या है जो डेटा सम्मिलित नहीं कर सका?

  5. MySQL तालिका में ट्री पथ प्राप्त करें