2016-11-01 9 views
0

私はこのサイトを数年間研究に使ってきましたが、私の研究からこれを理解することはできません。次のエラーを取得:内部結合ステートメントのSQL変換エラー - 何も変換していない

Conversion failed when converting the varchar value '38221.0' to data type 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' 

私は何を変換していないよ、私はなぜ私はわかりませんよこのエラーが発生しています。私はこのコーディングのバリエーションを多くのプロジェクトで使いましたが、エラーは一度も受け取りませんでした。私はどんな助けにも感謝します。ありがとう!

+1

charフィールドまたはvarcharフィールドをintフィールドと比較しています。これは、比較を実行する前に暗黙的にvarcharをintに変換します。 – Ben

+0

エラーメッセージは、私にエラーがどこを探しているかを示しています。 – RSQ2

+0

@Ben、なぜ答えはありませんか? :-) –

答えて

0

CONV(N,from_base,to_base)を試してみると、数値が異なる数値間で変換されます。これは、数字Nの文字列表現を返します。 からbaseをbaseからto_baseに変換します。

1

残念ですが、私はそれを得ました。私はそれが私のINNER JOINにあったと思っていたが、それは他の結合の一つにあった。私はPERSONNUMBERにPERSONIDに参加していました。私はそれを修正し、すべてがスムーズに動作します。あまりにも長くそれを見つめ、あなたの前に何があるのか​​見ていない場合。あなたの時間をありがとう。

関連する問題