2013-02-17 3 views
0

У меня есть таблица в MySQL, у которой много данных. Я хочу показать сумму созданного столбца ...Сумма результата, сгенерированного во время выполнения запроса mysql

Я вычитаю два столбца, и я хочу показать SUM результата. Вот что у меня есть

CREATE TABLE amounts(
id MEDIUMINT NOT NULL AUTO_INCREMENT, 
bank_amount INT, 
amount INT, 
PRIMARY KEY (id) 
) ENGINE=MyISAM; 
INSERT INTO `amounts` (`id`, `bank_amount`, `amount`) VALUES (NULL, '1000', '100'), 
(NULL, '2000', '200'),(NULL, '3000', '300'),(NULL, '1200', '500'),(NULL, '2000', '600'), 
(NULL, '1202', '800'),(NULL, '220', '50'); 

У меня есть этот запрос

SELECT bank_amount,amount,(bank_amount-amount) as bal from amounts where ...... 

Выше запроса даст мне этот результат

количество bank_amount BAL

44445164 +10617451515053691368888

и так далее

Теперь я хочу, чтобы показать SUM БАЛ также как 900 + 1800 + 2700

ответ

1

Это вы имеете в виду?

SELECT x.* 
     , x.bank_amount-x.amount bal 
     , SUM(y.bank_amount-y.amount) running 
    FROM amounts x 
    JOIN amounts y 
    ON y.id <= x.id 
    GROUP 
    BY id; 
+----+-------------+--------+------+---------+ 
| id | bank_amount | amount | bal | running | 
+----+-------------+--------+------+---------+ 
| 1 |  1000 | 100 | 900 |  900 | 
| 2 |  2000 | 200 | 1800 | 2700 | 
| 3 |  3000 | 300 | 2700 | 5400 | 
| 4 |  1200 | 500 | 700 | 6100 | 
| 5 |  2000 | 600 | 1400 | 7500 | 
| 6 |  1202 | 800 | 402 | 7902 | 
| 7 |   220 |  50 | 170 | 8072 | 
+----+-------------+--------+------+---------+ 
+0

: Спасибо, что вы это решили. – Methew

0

Вы ищете

SELECT 
    A.id, 
    A.bank_amount, 
    A.amount, 
    (A.bank_amount - A.amount) as bal, 
    T.Total_bal 
FROM amounts A 
    JOIN 
     (
      SELECT Id, SUM(bank_amount-amount) Total_bal 
      FROM amounts 
      GROUP BY Id 
    ) T 
     ON A.Id = T.Id 

?

+0

Это создаст СУММУ для каждой строки ... Я хочу получить сумму целого результата. Например, скажем, у меня это ... 1000 100 900 в первой строке, а во второй строке у меня это ... 2000 200 1800. Теперь мне нужен результат 900 + 1800 – Methew

+0

@Methew Что не так? Вы получаете то, что хотите. Вы попробовали запрос? –

+0

@Methew Вы хотите получить этот результат для каждого 'Id' и у вас много строк для каждого' Id'? –

Смежные вопросы