Как выбрать значение суммирования столбцов записи, которые отличаются? - PullRequest
0 голосов
/ 29 июня 2011

Следующий запрос неверен, но я хочу что-то подобное

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

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

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

Редактировать 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' в«где пункт»

Ответы [ 4 ]

3 голосов
/ 29 июня 2011

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

SELECT sum(price) AS pricesum, sum(paid) AS paidsum
FROM finance
GROUP BY item_id
HAVING pricesum <> paidsum
2 голосов
/ 29 июня 2011

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

SELECT sum(fee) AS totalfee, 
sum(paid) AS totalpaid 
FROM finance 
WHERE totalfee < totalpaid 
GROUP BY item_id 
1 голос
/ 29 июня 2011
SELECT sum(price) AS price, sum(paid) AS paid
FROM finance
GROUP BY item_id
HAVING sum(price) != sum(paid)
0 голосов
/ 29 июня 2011

Разве вы не ищете только следующее?

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