-1
我有一个SQL查询,当WHERE语句只包含一个语句,但不包含同时包含这两个语句时正常工作。当我使用这两个WHERE语句时,我得到“错误转换数据类型为varchar到数字。” (错误发生在第二个SELECT语句中,而不是在CTE中)。使用多个WHERE语句时转换数据类型出错
这段代码是什么我想:
;WITH cte_1 as(
SELECT EVENT_ID
,CLIENT_ID
,convert(varchar(10), E.STARTDATE, 101) as R106_DATE
FROM SCEVENT
WHERE STARTDATE>='06/01/2016' AND STARTDATE<='06/30/2016'
and SVC_ID=106
)
SELECT R.*
,convert(varchar(10), S.BEG_DATE, 101) as SVC_DATE
,S.UNIT_ID
FROM cte_1 R
JOIN CDCLSVC S
on R.CLIENT_ID=S.CLIENT_ID
WHERE R106_DATE<=BEG_DATE
and UNIT_ID=251
如果我包括一个或WHERE语句,它工作正常的其它。但是,如果我有这两个陈述,我得到一个错误。
(期望的结果是人谁在单元251有一个服务后,他们有一个服务代码(SVC_ID)106的列表)
的思考?
'CDCLSVC.CLIENT_ID'和'SCEVENT.CLIENT_ID'的数据类型是什么? –
CLIENT_ID在两个数据集中都是数字。 UNIT_ID也是数字。 – Kristin
因此,如果我将它从“and UNIT_ID = 251”更改为“和UNIT_ID> = 251”,我的代码将工作。它适用于>符号。但是,当然,这不是我想要的。 – Kristin