我正在尝试执行查询:
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
并收到此错误:
Msg 245,Level 16,State 1,Line 1转换时转换失败 varchar值'121CLAIMS'到数据类型int。
我该怎么知道究竟是什么导致了这个?
是否可能在连接列的数据类型不匹配的连接上出现此错误?
非常感谢你的指导和帮助
答案 0 :(得分:1)
只是对此进行了尝试,但是因为你的查询在select语句中没有任何复杂的内容 - 尝试转换的唯一逻辑位置是在你的一个连接限定符中:“on payors.accn_id = billed.accn_id “等等。
我怀疑你的一个表实际存储了字段:accn_id或pt_id等作为VARCHAR(或者VARCHAR值可能意外地存储在该列中)
无论如何,数据似乎是可疑的......一方面你有一个int,另一方面是一个字符串。你最好的选择是创建VARCHAR类型的所有ID字段,因为在查询期间尝试将它们转换为性能
希望有所帮助!