2013-03-01 7 views
1

Я хотел получить все записи, чья «сумма» больше или равна 1500. Проблема даже в том, что «сумма» меньше 1500, она также будет отображаться на странице ,Получение всех записей в таблице

customers table 
id name 
1 sample 
2 sample2 
3 sample3 


payments table 

p_id amount id(foreign key) 
1  800  2 
2  800  2 
3  1500 1 
4  1200 3 

костюмер 1 и 2 должны быть восстановлены, так как количество> = 1500.

Спасибо, Mick :)

+1

Какой вопрос? –

+0

вернуть всех клиентов, чья сумма> = 1500 –

+0

@Mick Austre - каждый индивидуальный платеж> = 1500 или всего для клиента> = 1500? –

ответ

3

Это требует объединения таблиц. GROUP BY используется, поскольку один из столбцов агрегируется с использованием SUM(), а предложение HAVING используется для фильтрации результата агрегирования.

SELECT a.ID, a.name 
FROM customers a 
     INNER JOIN payments b 
      ON a.ID = b.id 
GROUP BY a.ID, a.name 
HAVING SUM(b.amount) >= 1500 
Смежные вопросы