2012-06-05 1 views
0

Я хочу вернуть набор результатов (из базы данных postgres), содержащий клиентов, чья последняя дата платежа была больше, чем X дней назад.Где разница по дате между датой и значением даты больше, чем X

Это то, что я в настоящее время, чтобы получить список всех клиентов и их дата последнего платежа:

select usermaster.userid, date_trunc('days', now()-max(paymentdate)) as last_payment 
    from usermaster, paymentdetail 
    where usermaster.userid=paymentdetail.userid 
    group by usermaster.userid; 

Я хотел бы ограничить с дополнительным условием где: где ... и last_payment> 100 дней

ответ

0

Это должно сделать трюк

EDIT -

select * from 
(SELECT usermaster.userid, date_trunc('days', now()-max(paymentdate)) as 
     last_payment 
from usermaster, paymentdetail 
where usermaster.userid=paymentdetail.userid 
group by usermaster.userid) as temptab 
where last_payment>100; 
+0

Благодарим за быстрый ответ. Раньше я не встречал вариант HAVING. К сожалению, это не сработает. Postgres дает ERROR: столбец «last_payment» не существует – cemlo

+0

Проверить обновленный запрос –

+0

Да, это сработало для меня. Я даже мог изменить его, чтобы быть оператором обновления. Благодаря! – cemlo

0

Вы можете добавить having в конце:

having trunc('days', now()-max(paymentdate)) > 100