【发布时间】:2018-06-29 04:07:26
【问题描述】:
我有一个从两个不同数据库中选择记录的查询。我的查询有效,它显示了我想要的数据,但利益相关者希望将特定字段转换为不同的答案,以便他们在收到 SSRS 报告后不必在 Excel 中操作这一行。
对于这个问题,我更改了表名等并使查询更简单(我的包含更多列),但一般概念是相同的。
表:tLive1、tCodes
SELECT
tLive1.cClientName AS 'Client Name'
,tLive1.cPolicynum AS 'Policy Number'
,tCodes.nStatus AS 'Status'
FROM tLive1 WITH (NOLOCK)
LEFT JOIN tCodes WITH (NOLOCK) ON tLive1.nStat = tCodes.nStatus
WHERE tLive1.nStat LIKE 'In Progress'
ORDER BY 'Client Name'
我的问题是 tCodes.nStatus 有一个内部描述,销售人员不希望其他人看到,他们宁愿将“进行中”变成“工作中”等等。
我尝试使用 CASE,但我不知道在哪里插入 CASE 而不会导致错误。
我试过了:
SELECT
tLive1.cClientName AS 'Client Name'
,tLive1.cPolicynum AS 'Policy Number'
--,tCodes.nStatus AS 'Status'
,( SELECT CASE nStatus
WHEN 'Assigned' THEN 'Someone has it'
ELSE 'XXX'
END AS 'Status'
FROM tCodes
)
FROM tLive1 WITH (NOLOCK)
LEFT JOIN tCodes WITH (NOLOCK) ON tLive1.nStat = tCodes.nStatus
WHERE tLive1.nStat LIKE 'In Progress'
ORDER BY 'Client Name'
【问题讨论】: