WHEREステートメントに1つのステートメントのみが含まれていて、同時に両方のステートメントが含まれている場合にうまく動作するSQLクエリがあります。両方のWHERE文を使用すると、「データ型をvarcharから数値に変換中にエラーが発生します。」 (エラーは、CTEではなく、2番目のSELECT文で発生しています)。複数の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
私は文、それが正常に動作し、どちらか一方が含まれている場合。しかし、私は両方のステートメントがある場合、私はエラーが発生します。
(所望の結果は、彼らがサービスコードを持っていた後にユニット251でサービスを持っていた人(SVC_ID)106のリストである)
思考?
'CDCLSVC.CLIENT_ID'と' SCEVENT.CLIENT_ID'のデータ型は何ですか –
CLIENT_IDは両方のデータセットの数値です。 UNIT_IDも数値です。 – Kristin
したがって、 "UNIT_ID = 251"から "UNIT_ID> = 251"に変更すると上記のコードが動作します。これは>記号で動作します。しかし、もちろん、これは私が望むものではありません。 – Kristin