2016-08-10 5 views
1

Я хочу, чтобы платный_маунт не был «0», но каждый раз я запускаю запрос. Я получаю «Оператор не соответствует указанному имени и типу аргументов». Возможно, вам придется добавить явные типы приведения ». Что я должен делать? Я использую PostgreSQL.Как я могу наложить на postgres?

SELECT 
     * 
    FROM 
     vouchers 
    LEFT JOIN voucher_payment ON vouchers.voucher_id = voucher_payment.voucher_id 
    LEFT JOIN payment_details ON voucher_payment.payment_id = payment_details.payment_id 
    WHERE 
     voucher_payment.claim_transfer IS NOT NULL 
    AND paid_amount NOT LIKE '0' 
+1

определение таблицы было бы хорошо, чтобы ответить на ваш вопрос, но: это более чем вероятно, что 'paid_amount' является какой-то числовой столбец, который не поддерживает запросы 'LIKE'. Вместо этого вы можете попробовать 'paid_amount <> 0'. (Или, чтобы включить даже 'NULL': 'paid_amount IS DISTINCT FROM 0') – pozs

+0

Хорошо, я сделал paid_amount! =" 0 ", и он работал, однако в таблице они все еще появляются, но когда я запускал запрос, т. – jasmine825

+0

Пожалуйста, отредактируйте ваш вопрос, чтобы показать структуру вашей таблицы. Утверждение 'CREATE TABLE' было бы идеальным, и если вы используете что-то вроде phpPgAdmin или pgAdmin III, вы должны легко это получить. – IMSoP

ответ

0

Вы должны попробовать VARCHAR <> он работал для меня, потому что не может быть цифрой 0

0

Вы можете бросить на лету путем выдачи paid_amount :: текст! = «0», например, однако вы должны быть осторожны, что ваши результаты ожидаются. Увидеть определение таблицы поможет здесь.

Смежные вопросы