-1

クエリを実行しようとしています:

select 
distinct
billed.accn_id,
payors.PAYOR_PRIORITY,
payors.PAYOR_NAME,
payors.PAYOR_ID,
payorconfig.PAYOR_GROUP,
payorconfig.CONTACT1_ADDR1,
payorconfig.CONTACT1_ADDR2,
payorconfig.CONTACT1_CITY,
payorconfig.CONTACT1_STATE,
payorconfig.CONTACT1_ZIPCODE,
payorconfig.CONTACT1_PHONE,
payorconfig.CONTACT1_FAX,
payorconfig.CONTACT1_EMAIL,
patient.PT_ID,
patient.PT_ADDR1,
patient.PT_ADDR2,
patient.PT_CITY,
patient.PT_ST_ID,
patient.PT_ZIPCODE,
patient.PT_HOME_PHM

from accn_billed_procedures billed
left outer join accn_payors payors
on payors.accn_id=billed.accn_id

left outer join payor_config payorconfig
on payorconfig.payor_id=payors.x_payor_id

left outer join accn_demographics demos
on billed.accn_id = demos.accn_id

left outer join patient_demographics patient
on demos.pt_id=patient.pt_id

このエラーが発生します:

メッセージ245、レベル16、状態1、行1varchar値「121CLAIMS」をデータ型intに変換するときに変換に失敗しました。

何がこれを引き起こしているのかを正確に知るにはどうすればよいですか?

結合列のデータ型が一致しない結合でこのエラーが発生する可能性はありますか?

ご指導、ご協力ありがとうございました

4

1 に答える 1

1

これを突き刺すだけですが、クエリのselectステートメントに複雑なものは何もないため、変換が試行される唯一の論理的な場所は、結合修飾子の1つの内部になります: "on payors.accn_id=billed.accn_id" など.

あなたのテーブルの1つが実際にフィールドを格納していると思われます: accn_id または pt_id などを VARCHAR として (または VARCHAR 値が誤ってその列に格納された可能性があります)

いずれにせよ、データが疑わしいようです..一方にはintがあり、もう一方には文字列があります。最善の策は、すべての ID フィールドを VARCHAR 型にすることです。これは、クエリ中にそれらを変換しようとすると、パフォーマンスが大幅に低下する可能性があるためです。

それが役立つことを願っています!

于 2012-06-07T04:50:34.667 に答える