繁体   English   中英

内部联接语句上的SQL转换错误-不进行任何转换

[英]SQL Conversion Error on Inner Join Statement - Not Converting Anything

我已经将该网站用于研究已有多年了,但无法从我的研究中弄清楚这一点。 出现以下错误:

将varchar值'38221.0'转换为数据类型int时转换失败。

此“ 38221.0”与以下代码中的“ CP.DNCP_PATIENTID”相关:

SELECT  PAT.V51_PRSNPERSONNUMBER AS PSNNMBR,
PAT.V51_PRSNFIRSTNAME AS FIRSTNAME,
PAT.V51_PRSNMIDDLENAME AS MIDDLENAME,
PAT.V51_PRSNLASTNAME AS LASTNAME,
ADDR.V8_PERSONHOMEADDRLINE1 AS ADDRESS,
ADDR.V8_PERSONHOMEADDRLINE2 AS ADDRESS2,
ADDR.V8_PERSONHOMEADDRCITY AS CITY,
ADDR.V8_PERSONHOMEADDRSTATE AS STATE,
ADDR.V8_PERSONHOMEADDRZIP AS ZIP,
PAT.V51_PRSNDOB AS DOB,
PAT.V51_PRSNSEX AS SEX,
PAT.V51_PRSNSSN AS SSN,
ADDR.V8_PERSONHOMEPHONENUMBER AS HOMEPHONE,
ADDR.V8_PERSONMOBILEPHONENUMBER AS MOBILEPHONE, 
CV.V9_DNPLANSORTNAME AS INSPLAN,
CV.V9_DNCARRIERNAME AS INSCARRIER,
COORD.PCCUSERNAME AS CARECOORDINATOR
FROM I_DNCHGSPMTS CP
LEFT OUTER JOIN IPROCEDURE PR
    ON (CP.DNCP_PROCEDURECODE = PR.PRPROCEDURECODE AND CP.OFFICE_ID = PR.OFFICE_ID)
LEFT OUTER JOIN I_VSTAFFCHGBILL STFBILL
    ON (CP.OFFICE_ID = STFBILL.OFFICE_ID AND CP.DNCP_PRACTICEID = STFBILL.V69_STPRACTICEID AND
        CP.DNCP_STAFFID_CREDITED = STFBILL.V69_STSTAFFID)
LEFT OUTER JOIN I_VPROVCHGBILL BILL
    ON (STFBILL.V69_STSTAFFID = BILL.V58_PROVPROVIDERID AND STFBILL.OFFICE_ID = BILL.OFFICE_ID)
LEFT OUTER JOIN I_DNCHGCOVERAGE CHGCV
    ON (CP.OFFICE_ID = CHGCV.OFFICE_ID AND CP.DNCP_CHARGESID = CHGCV.TPSCHARGESID)
LEFT OUTER JOIN I_VDNPLANCHGCV1 CV
    ON (CHGCV.CHGCVR1PLANID = CV.V9_DNPLANID AND CHGCV.OFFICE_ID = CV.OFFICE_ID)
LEFT OUTER JOIN I_VDEPTCHG DEP
    ON (CP.DNCP_DEPARTMENTCODE = DEP.V4_DPTDEPARTMENTCODE AND CP.OFFICE_ID = DEP.OFFICE_ID)
LEFT OUTER JOIN I_VDNADDRSPAT ADDR
    ON (CP.OFFICE_ID = ADDR.OFFICE_ID AND CP.DNCP_PATIENTID = ADDR.V8_TPSPERSONID)
LEFT OUTER JOIN I_VPERSONPAT PAT
    ON (CP.OFFICE_ID = PAT.OFFICE_ID AND CP.DNCP_PATIENTID = PAT.V51_PRSNPERSONID)
LEFT OUTER JOIN IACCOUNT ACC
    ON (CP.OFFICE_ID = ACC.OFFICE_ID AND CP.DNCP_ACCOUNTSID = ACC.ACCACCOUNTSID)
LEFT OUTER JOIN IPAYMENT PMT
    ON (CP.OFFICE_ID = PMT.OFFICE_ID AND CP.DNCP_PAYMENTSID = PMT.PMTPAYMENTSID)
LEFT OUTER JOIN I_VLUPROCCLASS CL
    ON (PR.OFFICE_ID = CL.OFFICE_ID AND PR.PRCLASS = CL.V85_LUCLOOKUPCODE)
LEFT OUTER JOIN I_VSVCCNTRPROC SVC
    ON (CP.OFFICE_ID = SVC.OFFICE_ID AND CP.DNCP_SERVICECENTERID = SVC.V75_SVCSERVICECENTERID)
LEFT OUTER JOIN I_DNDXPROCEVENT DX
    ON (CP.OFFICE_ID = DX.OFFICE_ID AND CP.DNCP_PROCEDUREEVENTSID = DX.TPSPROCEDUREEVENTSID)
LEFT OUTER JOIN IPATIENT IPAT
    ON (CP.OFFICE_ID = IPAT.OFFICE_ID AND CP.DNCP_PATIENTID = IPAT.PATDNPERSONNUMBER)
LEFT OUTER JOIN I_VPATCARECOORD COORD
    ON (IPAT.OFFICE_ID = COORD.OFFICE_ID AND IPAT.PATCARECOORDINATORID = COORD.PCCMMUSERSID)
INNER JOIN (
    SELECT  CP.DNCP_PATIENTID AS PSNNMBR,
        MAX(CP.DNCP_FROMSERVICEDATE) AS SVCDT
        --MIN(CP.DNCP_AMOUNT_CHARGE) AS CHGAMT
    FROM I_DNCHGSPMTS CP
        LEFT OUTER JOIN IPROCEDURE PR
            ON (CP.DNCP_PROCEDURECODE = PR.PRPROCEDURECODE AND CP.OFFICE_ID = PR.OFFICE_ID)
        LEFT OUTER JOIN I_VSTAFFCHGBILL STFBILL
            ON (CP.OFFICE_ID = STFBILL.OFFICE_ID AND CP.DNCP_PRACTICEID = STFBILL.V69_STPRACTICEID AND
            CP.DNCP_STAFFID_CREDITED = STFBILL.V69_STSTAFFID)
        LEFT OUTER JOIN I_VPROVCHGBILL BILL
            ON (STFBILL.V69_STSTAFFID = BILL.V58_PROVPROVIDERID AND STFBILL.OFFICE_ID = BILL.OFFICE_ID)
        LEFT OUTER JOIN I_DNCHGCOVERAGE CHGCV
            ON (CP.OFFICE_ID = CHGCV.OFFICE_ID AND CP.DNCP_CHARGESID = CHGCV.TPSCHARGESID)
        LEFT OUTER JOIN I_VDNPLANCHGCV1 CV
            ON (CHGCV.CHGCVR1PLANID = CV.V9_DNPLANID AND CHGCV.OFFICE_ID = CV.OFFICE_ID)
        LEFT OUTER JOIN I_VDEPTCHG DEP
            ON (CP.DNCP_DEPARTMENTCODE = DEP.V4_DPTDEPARTMENTCODE AND CP.OFFICE_ID = DEP.OFFICE_ID)
        LEFT OUTER JOIN I_VDNADDRSPAT ADDR
            ON (CP.OFFICE_ID = ADDR.OFFICE_ID AND CP.DNCP_PATIENTID = ADDR.V8_TPSPERSONID)
        LEFT OUTER JOIN I_VPERSONPAT PAT
            ON (CP.OFFICE_ID = PAT.OFFICE_ID AND CP.DNCP_PATIENTID = PAT.V51_PRSNPERSONID)
        LEFT OUTER JOIN IACCOUNT ACC
            ON (CP.OFFICE_ID = ACC.OFFICE_ID AND CP.DNCP_ACCOUNTSID = ACC.ACCACCOUNTSID)
        LEFT OUTER JOIN IPAYMENT PMT
            ON (CP.OFFICE_ID = PMT.OFFICE_ID AND CP.DNCP_PAYMENTSID = PMT.PMTPAYMENTSID)
        LEFT OUTER JOIN I_VLUPROCCLASS CL
            ON (PR.OFFICE_ID = CL.OFFICE_ID AND PR.PRCLASS = CL.V85_LUCLOOKUPCODE)
        LEFT OUTER JOIN I_VSVCCNTRPROC SVC
            ON (CP.OFFICE_ID = SVC.OFFICE_ID AND CP.DNCP_SERVICECENTERID = SVC.V75_SVCSERVICECENTERID)
        LEFT OUTER JOIN I_DNDXPROCEVENT DX
            ON (CP.OFFICE_ID = DX.OFFICE_ID AND CP.DNCP_PROCEDUREEVENTSID = DX.TPSPROCEDUREEVENTSID)
    WHERE CP.OFFICE_ID = 'EDQV'
        AND CP.DNCP_ACTIVITYTYPE = 'CHG'
        AND (CP.DNCP_PROCEDURECODE LIKE '99490' OR CP.DNCP_PROCEDURECODE LIKE 'CCM')
        AND (DATEDIFF(DAY,CP.DNCP_POSTDATE,GETDATE())) < 180
    GROUP BY CP.DNCP_PATIENTID
    ) AS MAXSVCDATE
    ON (CP.DNCP_PATIENTID = MAXSVCDATE.PSNNMBR AND CP.DNCP_FROMSERVICEDATE = MAXSVCDATE.SVCDT) --AND CP.DNCP_AMOUNT_CHARGE = MAXSVCDATE.CHGAMT)
WHERE CP.OFFICE_ID = 'EDQV'

由于我没有进行任何转换,因此不确定为什么会出现此错误。 我在许多项目中使用了这种编码的变体,但从未收到错误。 感谢您的帮助。 谢谢!

对不起,我明白了。 我以为是在我的INNER JOIN中,但在其他联接中之一。 我正在将一个PERSONNUMBER加入一个PERSONID。 我修复了它,现在一切正常。 盯着它看太久而看不到眼前的事物的情况。 感谢您的时间。

尝试使用CONV(N,from_base,to_base) ,它可以在不同的数字基数之间转换数字。 它返回数字N的字符串表示形式,从基数from_base转换为to_base

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM