akxxiv
Новичок
Нужна помощь в составлении запроса.
Делаю запрос (он не работает)
Проблема у меня заключается в том, что для присоединения таблицы sp_bills_counter, мне предварительно надо определить параметр reason_type_str, но у меня такое впечатление, что Мускул сначала пытается присоединить таблицу а потом отработать IF().
Вопрос в том как мне это побороть. Как перестроить запрос таким образом, чтобы он сначала отрабатывал IF() и определял поле reason_type_str, а потом использовал его для присоединения таблицы???
Делаю запрос (он не работает)
PHP:
SELECT
ec.document_date,
ec.`sum`,
ec.`document_type`,
ec.`document_name`,
ec.`document_number`,
IF(ec.`reason_type`=1, "bill", IF(ec.`reason_type`=3, "cbill", NULL)) as reason_type_str,
ec.`reason_id`,
bc.id as `reason_number`,
"EC" as `t`
FROM sp_extra_charge ec
LEFT JOIN sp_bills_counter as bc ON bc.type=reason_type_str AND bc.bill_id=ec.reason_id
WHERE
contractor IN('254') AND contractor_type='0'
AND `document_date`>='2007-01-01' AND `document_date` <= '2008-04-30'
ORDER BY `document_date`
Вопрос в том как мне это побороть. Как перестроить запрос таким образом, чтобы он сначала отрабатывал IF() и определял поле reason_type_str, а потом использовал его для присоединения таблицы???