Нужна помощь в составлении запроса.

akxxiv

Новичок
Нужна помощь в составлении запроса.

Делаю запрос (он не работает)
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`
Проблема у меня заключается в том, что для присоединения таблицы sp_bills_counter, мне предварительно надо определить параметр reason_type_str, но у меня такое впечатление, что Мускул сначала пытается присоединить таблицу а потом отработать IF().
Вопрос в том как мне это побороть. Как перестроить запрос таким образом, чтобы он сначала отрабатывал IF() и определял поле reason_type_str, а потом использовал его для присоединения таблицы???
 

akd

dive now, work later
Команда форума
попробуй.

LEFT JOIN sp_bills_counter as bc
ON ((ec.reason_type = 1 and bc.type="bill") OR (ec.reason_type = 3 and bc.type="cbill"))
AND bc.bill_id=ec.reason_id
 

akxxiv

Новичок
Кого?

-~{}~ 30.04.08 13:53:

----
Упс не заметил последнего топика

-~{}~ 30.04.08 13:56:

akd
Кстати да. Спасибо. Что-то об ентом я и не подумал.
 
Сверху