Sql ile view tabloları birleştirme
kurthan13.08.2005 - 11:57:57
Sa.

Firebird kullanıyorum.Farklı tablolardan aldığım bilgilerle iki view tablo oluşturdum.


DB Caridurum
----------------
Chkod
Borc
Alacak

DB odemedurum
-----------------
Chkod
Borc
Alacak


Tablo yapım bu şekilde.

bu iki tabloyu birleştirerek toplam borç alacak durumunu gösterebilmem gerekiyor.

Fakat ilk tabloda olup ikinci tabloda olmayan veya ikinci tablo olup birinci tabloda olmayan kayıtlarında gözükmesi gerekiyor.

Yani şöyle;



DB caridurum

chkod borc alacak
------------ ------------ ------------
001 500 400
002 0 0
003 950 65
004 0 0

DB odeme

chkod borc alacak
------------ ------------ ------------
001 200 300
002 0 100
003 250 20
006 75 25



Yeni oluşturacağım view veya sorgu sonucu

chkod borc alacak
------------ ------------ ------------
001 700 700
002 0 100
003 1200 85
004 0 0
006 75 25


Birde view tabloları kullanarak yine view tablolar oluşturuyorum.Bu hız veya performans açısından herhangi bir sıkıntı yaratabilir mi?

Teşekkür ediyor,iyi çalışmalar diliyorum.
 
Uğur198213.08.2005 - 12:56:48
merhaba;

Bu şekilde bir view oluşturup....
CREATE VIEW SORGULA(
CHKOD,
BORC,
ALACAK)
AS
select chkod,sum(borc) as borc,sum(alacak) as alacak FROM caridurum
GROUP BY chkod
union
select chkod,sum(borc) as borc,sum(alacak) as alacak FROM odeme
GROUP BY chkod
;


Şöyle bir sorguyla sonucu alabilirsin....

select chkod,sum(borc) as borc,sum(alacak) as alacak from sorgula group by chkod


Birde view tabloları kullanarak yine view tablolar oluşturuyorum.Bu hız veya performans açısından herhangi bir sıkıntı yaratabilir mi?


Gerekli ve yerinde indexlerin olduktan sonra Uçak gibi çalışacağına eminim :D

iyi günler...
 
onaydin13.08.2005 - 13:16:06
Bir diğer yaklaşım

select coalesce(SK.chkod,SM.chkod), coalesce(SK.borc ,0) + coalesce(SM.borc ,0) from
caridurum SK full outer join odeme SM on SK.chkod = SM.chkod
order by 1
 
NOT : Bu sayfa google'un siteyi indekslemesi içindir. www.delphiturkiye.com/forum/ adresini kullanınız!
1998-2006 www.delphiturkiye.com