Sql ile view tabloları birleştirme

Firebird ve Interbase veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
Kullanıcı avatarı
kurthan
Üye
Mesajlar: 49
Kayıt: 29 Kas 2004 06:05
Konum: İstanbul
İletişim:

Sql ile view tabloları birleştirme

Mesaj gönderen kurthan »

Sa.

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

Kod: Tümünü seç

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;

Kod: Tümünü seç


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.
Tarihtir adil hakem
Sen kadar mende Türk'em
Sense hür Türkiyemsin
Mense esir Kerkük'em


Atilla Yılmaz 2005 - Vaktidir
Uğur1982
Üye
Mesajlar: 383
Kayıt: 11 Mar 2005 03:18
Konum: İzmir

Mesaj gönderen Uğur1982 »

merhaba;

Bu şekilde bir view oluşturup....

Kod: Tümünü seç

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....

Kod: Tümünü seç

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

Kod: Tümünü seç

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...
onaydin

Mesaj gönderen onaydin »

Bir diğer yaklaşım

Kod: Tümünü seç

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
Cevapla