0
下のコードで最後に結合を入力すると、「varchar値 '3'をデータ型intに変換するときに変換に失敗しました」というエラーメッセージが表示されます。 (MSG 245、Level 16、State 1、Line 1)誰かがこれで私を助けてくれますか? 1つのテーブルには、他のテーブルの他の番号と結合しようとしている番号の前に奇妙な文字があります。Varchar 3をintに変換する
SELECT ca.fdorgunit AS Facility
, pt.fdmedrecnum AS Account
, ca.fddos AS DOS
, ad.fdaddr1 AS [Address]
, pe.fdssn AS SSN
FROM OPENQUERY (VISION, 'SELECT * FROM ci.tbcase') AS ca
LEFT JOIN OPENQUERY (VISION, 'SELECT * FROM de.tbpatient') AS pt
ON pt.id = ca.fdpatient
LEFT JOIN OPENQUERY (VISION, 'SELECT * FROM de.tbperson') AS pe
ON pt.fdperson = pe.fdid
LEFT JOIN OPENQUERY (VISION, 'SELECT * FROM de.tbaddress') AS ad
ON ad.id = pe.fdaddress
WHERE ca.fdcasestatus = 'Performed'
GROUP BY ca.fdorgunit, ca.fddos, pt.fdmedrecnum, pe.fdssn, ad.fdaddr1
よう 何かをcharに整数に変換propabaly pe.fdaddressであなたのレコードの1つは、これを避けるために を数値ではないと思いますad.idとpe.address? – Eli
これらの「奇妙な文字」行を共有する必要があります。 – fhossfel
pe.fdaddressをint値(「奇妙な文字」がない)にすると、intにキャストできます。ただし、fdaddressがインデックスされた外部キーとして動作すると、そのインデックスは機能しなくなります(インデックスはintではなく元のvarchar値用です)。テーブルに適切なプライマリおよび/または外部キーを持つようにデータベースを設計するよう常に試みるべきです。 – RToyo