Join ile iki ayrı Database 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ı
alguli
Üye
Mesajlar: 35
Kayıt: 04 Nis 2007 01:03

Join ile iki ayrı Database Birleştirme

Mesaj gönderen alguli »

Kod: Tümünü seç

SELECT DISTINCT  D.ALISSATIS_NO, C.CARI_UNVANI, G.SEHIR, G.POSTA_KODU, D.ARAC_NO, D.ARAC_CINSI,D.ARAC_ASIL_NO,D.CARI_NO,
A.ARAC_PLAKA,A.DORSE_PLAKA,A.YUKLENME_TARIHI,G.SIRA_NO,A.SOFOR, A.NAKLIYE_UNVANI, A.NAKLIYE_CARI_NO,A.DURUM,A.YUK_DURUM
FROM ARACDETAY D
 LEFT JOIN NS_DOKUMAN DY ON (D.ARAC_ASIL_NO=DY.BAGLANTI_NO)
 JOIN ARACGUZARGAH G ON (D.ARAC_GUZARGAH_NO = G.ARAC_GUZARGAH_NO)
 JOIN NS_CARIKART C ON (D.CARI_NO = C.CARI_NO)
 JOIN ARACASIL A ON (D.ARAC_ASIL_NO=A.ARAC_ASIL_NO)
 
WHERE DY.BAGLANTI_NO IS NULL AND D.ARAC_CINSI IN ('Lkw','Kamyon','Tır','Konteynır')
ORDER BY A.ARAC_NO DESC,C.CARI_UNVANI
Yukarıdaki Sorguyla Araç ve Güzergah Dokümanlarını Takip Etmekteyim.
Dokümanlar Büyük olduğu için ayrı bir veritabanında tutma kararı aldık. Lakin Burdaki Doküman birleştirmeyi nasıl yapacağımı bilmiyorum.
NS_DOKUMAN tablosu DOKUMANDB database i içerisinde.
Delphi XE5 ve Firebird kullanmaktayım.
Acil yardımlarınıza ihtiyacım var.
Teşekkür ederim
Hayat yalanlarla dolu bir aşktır.
Gerçek aşka erişince o da biter.
anemos
Üye
Mesajlar: 110
Kayıt: 02 Nis 2007 07:51
Konum: Sakarya / Hendek

Re: Join ile iki ayrı Database Birleştirme

Mesaj gönderen anemos »

Çalışır mı emin değilim ama database yolu parametreli selectable bir sp den dönen kayıt kümesi ile join işlemini gerçekleştirebilirsiniz sanıyorum. Hiç ihtiyaç duymadığım için deneme imkanım olmadı. Performansı da bilemem. Burada önemli diğer bir konu, Firebird versiyonu 2.5 olmalı çünkü "on external data source" bu verssiyon ile geldi.

Örnek bir prosedur:

Kod: Tümünü seç

create procedure test(db varchar(255), tbl varchar(50))
returns(id integer, fld decimal(18,2))
as
 begin
  for execute statement 'select id, fld from ' || tbl
  on external data source 'localhost:' || db as user 'sysdba' password 'masterkey'
  into :id, :fld
  do
  suspend;
end
Join:

Kod: Tümünü seç

select a.*, b.*
from tablonuz a
inner join test('c:\deneme.fdb', 'tablonuz') b
on a.id = b.id
Kullanıcı avatarı
Kuri_YJ
Moderator
Mesajlar: 2247
Kayıt: 06 Ağu 2003 12:07
Konum: İstanbul
İletişim:

Re: Join ile iki ayrı Database Birleştirme

Mesaj gönderen Kuri_YJ »

Selamlar,

Dokumanlar büyük olduğu için başka bir database'de tutma kararı aldık dediniz. Nedenini merak ettim? Dosyanın büyümesinden dolayı mı? Gerek var mı?

Kolay Gelsin.
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2356
Kayıt: 12 Haz 2003 04:05
Konum: merkez camii yanı

Re: Join ile iki ayrı Database Birleştirme

Mesaj gönderen freeman35 »

Bu konunun sonuçlarını bende merak ediyorum. Kuyum programında her şeyi loglamam istendi bu da db yi 1,5 - 2 gb lara kadar şişiriyor, arada log table ları silip backup restore etmek zorunda kalıyorum. Konu benimde aklıma gelmişti ama araştırma yapmaya fırsatım olmmıştı. Buradan çıkacak sonuca göre bende logları ayrı bir db ye atabilirim. Test eden deneyen var mı?
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5

Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
anemos
Üye
Mesajlar: 110
Kayıt: 02 Nis 2007 07:51
Konum: Sakarya / Hendek

Re: Join ile iki ayrı Database Birleştirme

Mesaj gönderen anemos »

Mesajı yazdıktan sonra basit iki veritabanıyla ben de denedim, çalışıyor. Performans sonuçlarını sizden bekliyorum. :)
Cevapla