Sql de iki tabloyu bağlama?????

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
akkaya83
Üye
Mesajlar: 19
Kayıt: 01 Tem 2003 10:23
İletişim:

Sql de iki tabloyu bağlama?????

Mesaj gönderen akkaya83 »

iki tane tablom var bu tabloları en aşağıdaki gibi birleştirip bu çıktıyı vermem lazım nasıl bir Sql sorgu yazmam lazım...
Giriş ve çıkış işlemleri tek tabloya yapılıyor...
Yardımcı olurmusunuz arkadaşlar... Teşekkür ederim.

"İnsanlara teşekkür etmeyen Allah'a şükredemez!" Hadisdi galiba...

mev_fatura_hareket

fatura_tipi = "Alış Faturası" , gc="1" , satir_toplami = "500", cari_adi = "Karalar Tekstil", fatura_tarihi="01.01.2006"
fatura_tipi = "Satış Faturası" , gc=-"1" , satir_toplami = "200", cari_adi = "Karalar Tekstil", fatura_tarihi="01.03.2006"


Karalar Tekstil Hesap ekstresi
------------------------------------



mev_cari_borc_alacak_fisi

fis_turu = "Cari Borç Fişi" , gc="-1" , para_tutari="300", cari_adi = "Karalar Tekstil", fis_tarihi="01.02.2006"
fis_turu = "Cari Alacak Fişi" ve gc="1",para_tutari="100", cari_adi = "Karalar Tekstil", fis_tarihi="01.04.2006"



Karalar Tekstil Hesap ekstresi
------------------------------------

Hareket Tarihi Hareket Türü Belge No Açıklama Borç Alacak Borç Bakiye
------------- ----------- ------- --------------------- ----------- ---------- ------------
01.01.2006 Alış Faturası 123 yok 0 500 -500
01.02.2006 Cari Borç Fişi 444 Nakit 300 0 200
01.03.2006 Satış Faturası 153 iade malzeme 200 0 0
01.04.2006 Cari Alacak Fişi 145 Kredi Kartıgeçildi 0 100 100

--------------------------------------------------------------------



ya da



Hareket Tarihi Hareket Türü Borç Alacak Borç Bakiye
------------- ----------- ----------- ---------- ------------
01.01.2006 Alış Faturası 0 500 -500
01.02.2006 Cari Borç Fişi 300 0 200
01.03.2006 Satış Faturası 200 0 0
01.04.2006 Cari Alck Fişi 0 100 100


kısa yani
Kullanıcı avatarı
nitro
Üye
Mesajlar: 1112
Kayıt: 23 Ağu 2004 01:18
Konum: Çanakkale
İletişim:

Mesaj gönderen nitro »

Kod: Tümünü seç

select (islemtipi) as islemtipgenel, (tarih) as tarihgenel, (borctutar) as borctutargenel from tablo1
union
select (harekettipi) as islemtipgenel, (islemtarih) as tarihgenel, (borctutar) as borctutargenel from tablo2
iki tane select kullanıcaksın bunları unionla birleştiriceksin ama fieldler aynı olsun diye as ile aynı isimleri alacaklar.
kolay gelsin.
akkaya83
Üye
Mesajlar: 19
Kayıt: 01 Tem 2003 10:23
İletişim:

selam, teşkkürler nitro konat. sende doğru cevabı yazmışsın.

Mesaj gönderen akkaya83 »

SELECT cari_adi,gc,fatura_tarihi as hareket_tarihi, fatura_tipi as hareket_turu,fatura_belge_no as belge_no, aciklama,
SUM(CASE WHEN GC = 1 THEN genel_toplam ELSE 0 END) AS ToplamAlacak, SUM(CASE WHEN GC = -1 THEN (genel_toplam * (-1)) ELSE 0 END) AS ToplamBorc, SUM(genel_toplam * GC) As ToplamBakiye
FROM mev_fatura_hareket where cari_adi="Gen Tekstil" GROUP BY belge_no
UNION ALL SELECT cari_adi,gc,fis_tarihi as hareket_tarihi,fis_turu as hareket_turu,fis_no as belge_no,likidite_turu as aciklama,
SUM(CASE WHEN GC = 1 THEN para_tutari ELSE 0 END) AS ToplamAlacak, SUM(CASE WHEN GC = -1 THEN (para_tutari * (-1)) ELSE 0 END) AS ToplamBorc, SUM(para_tutari * GC) As ToplamBakiye
FROM mev_cari_borc_alacak_fisi where cari_adi="Gen Tekstil" GROUP BY belge_no order by hareket_tarihi


olmalıymış... detay yerine ana tabloyu kullandım oldu...
Cevapla