使用iReports连接字段和连接表
问题描述:
我试图连接一个表中的两个字段和另一个表中的另外两个字段,并使用连接值作为主键将表连接在一起。使用iReports连接字段和连接表
由于主键链接到示例5不同的人,我需要一个单独的值,每个人将一个保单号与一个dep代码连接起来。
以下是如何使用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创造更多的领域。另外请注意,我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
通过添加LEFT JOIN 'LEFT JOIN mipbi_dbo.td_beneficiary T5 ON t1.ms_fk = t5.ms_pk' 它不根据相关代码添加人员姓名。这仅仅是加入线路。
总之一个保单号被链接到不同的人有一个相关的代码,所以加入信息DEP 1时,应该链接到第二个表1 DEP用正确的姓名等
在表1 dep 1可以说10行,因此使用当前代码,它将在10行上添加保单号的所有信息,而不仅仅是dep 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,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
更新where子句。