-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,行 1 将 varchar 值“121CLAIMS”转换为数据类型 int 时转换失败。

我应该怎么知道究竟是什么原因造成的?

是否有可能在连接列的数据类型不匹配的连接上出现此错误?

非常感谢您的指导和帮助

4

1 回答 1

1

只是尝试一下,但是因为您的查询在 select 语句中没有什么复杂的 - 尝试转换的唯一合乎逻辑的地方将在您的一个连接限定符内:“on payors.accn_id=billed.accn_id”等.

我怀疑您的一个表实际上是存储字段: accn_id 或 pt_id 等作为 VARCHAR (或者可能是 VARCHAR 值意外存储在该列中)

无论如何,数据似乎是可疑的..一方面你有一个 int,另一个是字符串。最好的办法是使所有 ID 字段都为 VARCHAR 类型,因为在查询期间尝试将它们转换为性能可能会破坏性

希望有帮助!

于 2012-06-07T04:50:34.667 回答