我试图根据另一个表中存在的值(特别是字段为空)来加入2个表。根据以前的值使用不同字段加入相同的表
根据该字段是否为空,我想以不同的方式执行LEFT JOIN。
实施例:
LEFT JOIN (SELECT report_transaction_id, line_number, sale_staff_id, item_type, article_id, sale_count, return_count, line_price_inc_vat, merchandise_category
FROM [CRM].[TransactionItems]) ti
ON th.report_transaction_id = ti.report_transaction_id
CASE ti.article_id WHEN IS NULL THEN
LEFT JOIN (SELECT TOP 1 article_id, merchandise_category, long_desc, division_code, division_desc, group_code, group_desc
FROM [CRM].[Products]) p
ON ti.MERCHANDISE_CATEGORY = p.MERCHANDISE_CATEGORY
ELSE
LEFT JOIN (SELECT article_id, merchandise_category, long_desc, division_code, division_desc, group_code, group_desc
FROM [CRM].[Products]) p
ON ti.article_id = p.article_id
END
的情况下部分是示数,与附近有语法错误CASE的部分。据我所知,使用CASE不是一种有效的方式来选择Products表中使用哪些连接,所以我想知道确定哪个连接需要运行的正确方法,
谢谢。
尝试'CASE什么时候ti.article_id是NULL那么' – markpsmith
不幸的是仍然有相同的错误。这正是我之前将ti.article_id移到之前的时间 –