2017-02-17 2 views
1

Я написал ниже запрос в функции, который выполняется через триггер.Почему не выполняет запрос запроса в postgresql?

SELECT report_date INTO logdate FROM agent_statistics WHERE agentid =    
    NEW.caller_id_name AND report_date = DATE(NEW.start_stamp); 
SELECT COUNT(*) INTO outbound FROM cdr WHERE (caller_id_name = 
    NEW.caller_id_name AND direction = 'outbound' AND 
    DATE(NEW.start_stamp) = logdate); 
SELECT COUNT(*) INTO consult FROM cdr WHERE (caller_id_name = 
    NEW.caller_id_name AND direction = 'outbound' AND 
    DATE(NEW.start_stamp) = logdate AND billsec > '0'); 

Здесь значение logdate дает правильную дату. Но, исходящие и консультировать дают все строки из таблицы. означает, что предыдущая дата также включает в себя, что не следует включать. Мне нужны только текущие даты.

+0

Unrelated, но: если 'billsec' это число, не сравнить его со строкой' '0'' является строковое значение,' 0 'является числом. –

+0

В выбранном запросе я тестирую его, без кавычек он дает ошибку. поэтому, я так выразился. –

ответ

0

заменить вашу DATE(NEW.start_stamp) = logdate); с start_stamp = logdate);