2014-10-15 6 views
1

Это моя таблица (invoice_payments):SQL: получение суммы количеств нескольких строк в одной таблице

invoice_payments table

Я хочу, чтобы получить строки, сгруппированные по invoice_id с суммой суммы с конкретным состоянием. Мой SQL-запрос:

select invoice_id, (select sum(invoice_payments.amount) from invoice_payments where 
invoice_payments.type!='Store') as total_paid, type from invoice_payments where 
invoice_payments.type!='Store' group by invoice_id 

Я получаю этот результат:

My Query Result

Как вы можете видеть, что это не так. Пожалуйста, помогите/предложите решение. Я очень признателен за любой ответ.

Благодаря

+1

Я не получить второй выбор, почему вы не просто делать что-то вроде 'выбрать invoice_id, сумму (invoice_payments.amount) как total_paid , введите from invoice_payments, где invoice_payments.type! = 'Сохранить' группу по типу, invoice_id'? – Fougere

ответ

1
select invoice_id, sum(invoice_payments.amount) 
from invoice_payments 
where invoice_payments.type!='Store' 
group by invoice_id. 

Пожалуйста, пост ожидаемый результат, если приведенный выше запрос удовлетворяет потребности.

+0

Как насчет этого запроса? Как я могу исправить этот запрос? 'select invoice_id, sum (invoice_payments.amount) как total_paid, sum (case, когда type = 'Store', а затем invoice_payments.amount else 0 end) как total_balance, введите from invoice_payments, где invoice_payments.type! = 'Store' group by type , invoice_id' – Maria

+0

@Maria. в приведенном выше qry total_balance всегда приводит 0. Что это необходимо? – arunbabu

+0

почему это будет 0 всегда? Мне нужно total_paid и total_balance как – Maria

1

Вы можете использовать выражение casesum внутри функции:

SELECT invoice_id, 
     SUM(CASE WHEN type != 'Store' THEN amount ELSE 0 END) AS total_paid 
FROM  invoice_payments 
GORUP BY invoice_id 
+0

Как насчет этого запроса? Как я могу исправить этот запрос? 'select invoice_id, sum (invoice_payments.amount) как total_paid, sum (case, когда type = 'Store', а затем invoice_payments.amount else 0 end) как total_balance, введите from invoice_payments, где invoice_payments.type! = 'Сохранить' по типу, invoice_id' – Maria

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