【发布时间】:2014-08-13 00:25:27
【问题描述】:
这个查询:
SELECT
COUNT (a.clientid) AS NumChild
,sub.eligtype
FROM
(SELECT
CASE
WHEN eligibilitytyperecalc IN ('1', '4', '5', '7') THEN 'EstCondition'
WHEN eligibilitytyperecalc IN ('2', '6') THEN 'EstDelay'
WHEN eligibilitytyperecalc IN ('3', '8') THEN 'AtRisk'
ELSE 'Missing'
END AS EligType
FROM
ei_archive..closed_fy13_clientstatus13) AS sub
INNER JOIN
ei_archive..closed_fy13_clientstatus13 a ON sub.eligtype = a.eligibilitytyperecalc
WHERE
fy13_finalclientstatus = 14
AND programid <>40
AND programid = 01
GROUP BY
sub.eligtype
返回错误:
消息 245,第 16 级,状态 1,第 1 行
将 varchar 值“AtRisk”转换为数据类型 smallint 时转换失败。
我了解问题(不同的数据类型),但无法确定将 CONVERT 子句放在何处。我已经在第一个 select 语句、CASE 语句和 GROUP BY 中尝试过。
【问题讨论】:
标签: sql sql-server sql-server-2008-r2