【发布时间】:2019-03-29 23:05:19
【问题描述】:
;WITH
cte_REFERRALS_REPORTS (referralnum, refer_from, refer_from_name, refer_from_id, refer_to, refer_to_name, refer_to_id)
AS
(
SELECT
referralnum, refer_from,
CASE
WHEN refer_from_id = 'R' THEN RdicF.refname
WHEN refer_from_id = 'P' THEN PdicF.provname END AS refer_from_name,
refer_from_id, refer_to,
CASE
WHEN refer_to_id = 'R' THEN RdicT.refname
WHEN refer_to_id = 'P' THEN PdicT.provname END AS refer_to_name,
refer_to_id
FROM
referral_t r
LEFT JOIN
refcode_t RdicF
ON r.refer_from = CASE WHEN r.refer_from_id='R' THEN RdicF.refcode ELSE NULL END
LEFT JOIN
refcode_t RdicT
ON r.refer_to = CASE WHEN r.refer_to_id = 'R' THEN RdicT.refcode ELSE NULL END
LEFT JOIN
provcode_t PdicF
ON r.refer_from = CASE WHEN r.refer_from_id = 'P' THEN PdicF.provcode ELSE NULL END
LEFT JOIN
provcode_t PdicT
ON r.refer_to = CASE WHEN r.refer_to_id = 'P' THEN PdicT.provcode ELSE NULL END
)
我在 CTE 中的查询有效,但我觉得语法错误。我不断收到此错误:
“')'附近的语法不正确”
请帮忙。我是 SQL 和编码的新手。我在 CTE 和 Window 函数上苦苦挣扎。
【问题讨论】:
-
您可以查看文档docs.microsoft.com/en-us/sql/t-sql/queries/…了解如何使用
CTE。
标签: sql-server