2016-09-22 14 views
0

あるテーブルで2つのフィールドを連結し、別のテーブルで別の2つのフィールドを連結し、連結した値を主キーとして連結してテーブルを結合しようとしています。フィールドを連結してiReportsを使用してテーブルを結合する

プライマリキーが例5にリンクされているため、異なる人には、ポリシーコードとデポコードを連結した一意の値が必要です。

以下は、MSSQLでクエリを実行する方法の例です(完全なコードは含まれていません - 例のみ)。

Alter table [beneficiary] add [Unique] varchar(max) 
 
Update [beneficiary] Set [Unique] =concat([t1.ms_fk],[t1.dep_fk]) 
 

 
Alter table [tsf_claim] add [Unique] varchar(max) 
 
Update [tsf_claim] Set [Unique1] =concat([t5.ms_fk],[t5.dep_fk]) 
 

 
LEFT JOIN [mipbi_dbo.td_beneficiary] t5 ON t1.[Unique] = t5.[Unique1]

私は最終的に、左が参加し、私はiReportsに追加フィールドを作成する方法を知らないようiReportsに上記を含める必要があります。また、それはLEFT t1.ms_fk = t5.ms_pk ON mipbi_dbo.td_beneficiary T5のJOIN "参加私のiReportsが左を追加することにより、非常に古いバージョン(3.7.1)

SELECT t1.scheme_fk,t1.ms_fk,t1.dep_fk,t1.pr_fk,t1.tariff_fk,t1.icd10_fk,t1.claimed_amount,t1.benefit_amount,t1.auth_fk,t1.units,t1.paid_date, 
 
     t1.claim_date,t1.claim_code,t1.ref_pr_fk,t1.note,t1.cheque_datetime,t1.suspend_until,t1.dr_mem,t1.suspended, 
 
     t2.mem_num,t2.xref_num, 
 
     t3.icd10_pk,t3.icd10_descr, 
 
     t4.claim_code,t4.description, 
 
     t5.initials,t5.surname, 
 

 
FROM mipst_dbo.tsf_claim as t1 
 

 
LEFT JOIN mipst_dbo.tsf_memxref  t2 ON t1. ms_fk \t = t2.mem_num 
 
LEFT JOIN mipbi_dbo.td_icd10  t3 ON t1.icd10_fk \t = t3.icd10_pk 
 
LEFT JOIN mipst_dbo.tsd_ccdesc \t  t4 ON t1.claim_code = t4.claim_code::integer 
 
LEFT JOIN mipbi_dbo.td_beneficiary t5 ON t1.ms_fk  = t5.ms_pk 
 

 
WHERE t1.scheme_fk = '75' 
 
\t 
 
GROUP BY t1.scheme_fk,t1.ms_fk,t1.dep_fk,t1.pr_fk,t1.tariff_fk,t1.icd10_fk,t1.claimed_amount,t1.benefit_amount,t1.auth_fk,t1.units,t1.paid_date, 
 
     t1.claim_date,t1.claim_code,t1.ref_pr_fk,t1.note,t1.cheque_datetime,t1.suspend_until,t1.dr_mem,t1.suspended, 
 
     t2.mem_num,t2.xref_num, 
 
     t3.icd10_pk,t3.icd10_descr, 
 
     t4.claim_code,t4.description, 
 
     t5.initials,t5.surname

であることに注意してください従属コードに従って人名を追加していません。それはただの行に加わるだけです。要するに

ポリシー番号が依存するコードと異なる人々に連結されているので、1 DEP情報を接合する際等テーブルで

正しい名と姓を有する第2のテーブルから1をDEPに連結されなければなりません1 dep 1は10行と言うことができるので、現在のコードでは、dep 1の情報だけでなく、10行のポリシー番号のすべての情報を追加しています。

上記が明確に定義されているかどうかを教えてくださいより多くの情報が必要な場合。

答えて

0

私は単に

WHERE句を更新

SELECT t1.scheme_fk,t1.ms_fk,t1.dep_fk,t1.pr_fk,t1.tariff_fk,t1.icd10_fk,t1.claimed_amount,t1.benefit_amount,t1.auth_fk,t1.units,t1.paid_date, 
 
     t1.claim_date,t1.claim_code,t1.ref_pr_fk,t1.note,t1.cheque_datetime,t1.suspend_until,t1.dr_mem,t1.suspended, 
 
     t2.mem_num,t2.xref_num, 
 
     t3.icd10_pk,t3.icd10_descr, 
 
     t4.claim_code,t4.description,t4.scheme_code, 
 
     t5.ms_pk,t5.dep_fk,t5.initials,t5.surname, 
 
     t6.narration,t6.key 
 

 
FROM mipst_dbo.tsf_claim as t1 
 

 
LEFT JOIN mipst_dbo.tsf_memxref  t2 ON t1. ms_fk \t = t2.mem_num 
 
LEFT JOIN mipbi_dbo.td_icd10  t3 ON t1.icd10_fk \t = t3.icd10_pk 
 
LEFT JOIN mipst_dbo.tsd_ccdesc \t  t4 ON t1.claim_code = t4.claim_code::integer 
 
LEFT JOIN mipbi_dbo.td_beneficiary t5 ON t1.ms_fk  = t5.ms_pk 
 
LEFT JOIN mipst_dbo.tsf_note \t  t6 ON t1.note  = t6.key 
 

 
WHERE t1.scheme_fk = '28' and 
 
\t  t4.scheme_code = '28' and 
 
     t1.ms_fk = t5.ms_pk AND 
 
     t1.dep_fk =t5.dep_fk 
 
    
 
\t 
 
GROUP BY t1.scheme_fk,t1.ms_fk,t1.dep_fk,t1.pr_fk,t1.tariff_fk,t1.icd10_fk,t1.claimed_amount,t1.benefit_amount,t1.auth_fk,t1.units,t1.paid_date, 
 
     t1.claim_date,t1.claim_code,t1.ref_pr_fk,t1.note,t1.cheque_datetime,t1.suspend_until,t1.dr_mem,t1.suspended, 
 
     t2.mem_num,t2.xref_num, 
 
     t3.icd10_pk,t3.icd10_descr, 
 
     t4.claim_code,t4.description,t4.scheme_code, 
 
     t5.ms_pk,t5.dep_fk,t5.initials,t5.surname, 
 
     t6.narration,t6.key

してクエリを解決することができました。

関連する問題