2011-06-29 6 views
0

Следующий запрос не является правильным, но я хочу что-то подобноеКак я могу выбрать значение суммирования столбцов записи, которые отличаются?

SELECT sum(price) AS price, sum(paid) AS paid 
FROM finance 
WHERE sum(price) != sum(paid) 
GROUP BY item_id 

То, что я хочу, чтобы получить общую цены и оплачиваемой из пункта, который был продан, но не полностью оплаченным все же.

(что означает общую стоимость и общая сумма выплат разные)

Edit 1

Это моя структура таблицы

// table schedule_member 
schedule_member_id (PK) 
schedule_id (FK: schedule.schedule_id) 
student_id (FK: student.student_id) 
fee 
paid 
added (Current timestamp) 

SQL-запрос был

SELECT sum(fee) AS total_fee, sum(paid) AS total_paid 
FROM schedule_member 
WHERE total_fee != total_paid 
GROUP BY student_id 

затем ошибка пришла, # 1054 - Неизвестный столбец 'ABC' в 'где п'

+0

Не могли бы вы описать 'finance' таблицу пожалуйста? –

+1

Нет столбца с именем 'price', и именно поэтому это ошибка – Rahul

+0

см. Мое редактирование; согласно вашей структуре таблицы – Rahul

ответ

3

Попробуйте использовать HAVING вместо WHERE

SELECT sum(price) AS pricesum, sum(paid) AS paidsum 
FROM finance 
GROUP BY item_id 
HAVING pricesum <> paidsum 
0

Вы не только ищете следующий?

SELECT sum(price) AS total_price, sum(paid) AS total_paid 
FROM finance 
WHERE price <> paid 
GROUP BY item_id 
+0

@Martijn, я думаю, вы имеете в виду 'WHERE total_price <> total_paid' – Rahul

+0

Спасибо за исправление! – Martijn

+0

Нет, не работает. Он сказал, что «неизвестный столбец total_price» –

2

Как насчет как это

SELECT sum(fee) AS totalfee, 
sum(paid) AS totalpaid 
FROM finance 
WHERE totalfee < totalpaid 
GROUP BY item_id 
+0

Нет, не работает. Он сказал, что «цена неизвестной колонки» –

1
SELECT sum(price) AS price, sum(paid) AS paid 
FROM finance 
GROUP BY item_id 
HAVING sum(price) != sum(paid)