我有两个表存储有关信用卡和借记卡记录的信息。
voucherCr表包含
voucherType voucherPrefix voucherNo crparty cramount
SALES S 1 1 43000
SALES S 2 1 10000
voucherDr表包含
voucherType voucherPrefix voucherNo drparty dramount
SALES S 1 5 43000
SALES S 2 5 10000
现在,在SALES凭证S / 1中,第1方已获得43000金额相同金额的第5方。与SALES凭证S / 2相同,其中第1方已向相同金额的第5方贷记了10000金额。
现在我想显示如下结果如果我查询第1方
PARTY CREDIT DEBIT DEBITPARTY voucherType voucherPrefix voucherNo
1 43000 5 SALES S 1
1 10000 5 SALES S 2
请帮忙
答案 0 :(得分:0)
尝试使用此查询。在您的情况下,dramount
中是否有voucherDr
分为多行?例如43000-> 40000 + 3000
select
vc.Party,vc.CrAmount, vd.drAmount, vd.drparty,
vc.voucherType, vc.voucherPrefix, vc.voucherNo
from voucherCr vc
left join voucherDr vd on (vc.voucherType=vd.voucherType)
and (vc.voucherPrefix=vd.voucherPrefix)
and (vc.voucherNo=vd.voucherNo)
where vc.PARTY=1
答案 1 :(得分:0)
如果我已正确理解您的问题,那么这就是您正在寻找的
Select c.crParty as Party, d.dramount as credit , null as debit,
d.drParty as DEBITPARTY,c.voucherType as voucherType,
d.voucherPrefix,d.voucherNo
from VoucherCr as c inner join VoucherDr as d
on c.voucherNo=d.VoucherNo and c.voucherPrefix=d.voucherPrefix
where c.crparty=1
group by d.dramount,c.cramount,d.voucherPrefix,d.voucherNo,c.crParty,
c.voucherType,d.drParty
order by d.dramount desc