0

重複の可能性:
複数のテーブルからの口座残高を表示する

私は次のように2つのテーブルを持っています

voucherCr

srno    vouchertype voucherprefix   voucherno   crparty cramount
1        PURCHASE       P              1            2   55000
2        PAYMENT        R              1            1   55000

voucherDr

srno    vouchertype voucherprefix   voucherno   drparty dramount
1        PURCHASE       P              1            4   54000
2        PAYMENT        R              1            2   55000
3        PURCHASE       P              1            4       1000 

ここで、PURCHASEバウチャーP / 1では、パーティー2から55000相当の商品を購入し、PAYMENTバウチャーR / 1では、パーティー2に55000ルピーを支払っています。

パーティー2について問い合わせたら、次の形式で情報を表示したい

VTYPE      VPRE      VNO      AGAINSTPARTY      CREDIT      DEBIT
PURCHASE   P         1        4                 55000       NULL
PAYMENT    R         1        1                 NULL        55000

したがって、55000の購入に対して55000を支払ったので、パーティー2の決算残高はゼロになります。

手伝って頂けますか?

更新 私は以下で試しましたが、結果はありません

select * from voucherCr vc
full outer join voucherDr vd
on vc.voucherno=vd.voucherno
and vc.voucherprefix=vd.voucherprefix
and vc.vouchertype=vd.vouchertype
where vc.crparty=2 or vd.drparty=2

アップデート2

同じvouchernoとvoucherprefixのいずれかのテーブルに複数のエントリがあると、間違った結果が得られます。

4

2 に答える 2

1

これが必要だと思います:

select C.vouchertype,C.voucherprefix,C.voucherno,D.drparty,C.cramount AS CREDIT,NULL as DEBIT
from voucherCr C
inner join voucherDr D on C.vouchertype=D.vouchertype and C.voucherprefix=D.voucherprefix    and C.voucherno=D.voucherno
and C.crparty=2
union
select D.vouchertype,D.voucherprefix,D.voucherno,C.crparty,NULL as CREDIT,D.dramount AS   DEBIT
from voucherCr C
inner join voucherDr D on C.vouchertype=D.vouchertype and C.voucherprefix=D.voucherprefix and C.voucherno=D.voucherno
and D.Drparty=2
于 2012-12-25T08:17:07.950 に答える
0
`SELECT *   
 FROM voucherCr VC  
   FULL OUTER JOIN voucherDr VD ON VC.crparty = VD.drparty  
 WHERE  
   (VC.crparty IS NULL OR VD.drparty IS NULL)`

サンプル: http://www.sqlfiddle.com/#!3/74419/45

于 2012-12-25T10:07:54.487 に答える