Bir tabloda 3 farklı sorgu

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
pasa_yasar
Üye
Mesajlar: 570
Kayıt: 07 Haz 2004 12:35

Bir tabloda 3 farklı sorgu

Mesaj gönderen pasa_yasar »

Mrb;

Bir tablo üzerinden üç sorgum var ve bu sorgunun tek listede görünmesi gerekiyor. Sorgu muhasebe kayıtlarını içeriyor.


Tablo özelliği ve alanları : MySQL

İşlem tarihi, belge türü (tahsilat,ödeme vb.) ,bankaad,cariad,gelirad,giderad,islemgrubu

Kod: Tümünü seç

select * from muhasebeislemler
where docdate >'19.09.2016'

and ( bankaad   = 'Akbank' 
     or bankaad = 'İşbank' )

and ( cariad    = 'Ahmet' 
     or cariad  = 'Yunus' )


and ( gelirad   = 'Kira Geliri'
     or gelirad = 'Peşin Satışlar')
 
Bu şekilde yaptığımda tüm andları kontrol ediyor ve tüm koşullara uyan kaydı getirmeye çalışıyor. Böyle kayıt yok doğal olarak. Banka işleminde banka filtresi uygun olan var cari hesaplarda cari hesap filtresi uygun olan var. Her bölümün kendisine uygun kayıtlarını nasıl getirebilirim. And yerine or kullandım alakasız olanlarda geldi bu sefer
ertank
Kıdemli Üye
Mesajlar: 1716
Kayıt: 12 Eyl 2015 12:45

Re: Bir tabloda 3 farklı sorgu

Mesaj gönderen ertank »

Merhaba,

1- Aşağıdakileri tek bir Excel dosyası olarak hazırlayıp bu dosyayı sıkıştırarak foruma yükleyebilir misiniz?

Örnek tablo kayıtları bir sayfada (ham veriler)
Örnek filtreler (programın filtre bilgileri girilen ekranından bir görüntü) ayrı bir sayfada
Örnek filtrelere göre olması gereken sonuç sorgu kayıtları ayrı bir sayfada

Ham veri ve örnek filtreleri görmeden bir cevap vermek istemedim.

2- MySQL ile çok tecrübem yok. Ancak SQL sorgusuna verdiğiniz tarih formatı her zaman çalışmayabilir diye düşünüyorum. Acaba aşağıdaki sorgu geriye değer çeviriyor mu? Bilgileri gönderir iken bu sorunun cevabını da bildirebilir misiniz?

Kod: Tümünü seç

select * from muhasebeislemler
where docdate >'19.09.2016'
ebaytar
Üye
Mesajlar: 10
Kayıt: 03 Eki 2008 10:02

Re: Bir tabloda 3 farklı sorgu

Mesaj gönderen ebaytar »

UNION komutu işinizi görecektir sanırım.

select * from muhasebeislemler
where docdate >'19.09.2016'

and ( bankaad = 'Akbank'
or bankaad = 'İşbank' )
union
select * from muhasebeislemler
where docdate >'19.09.2016'
and ( cariad = 'Ahmet'
or cariad = 'Yunus' )
union
select * from muhasebeislemler
where docdate >'19.09.2016'
and ( gelirad = 'Kira Geliri'
or gelirad = 'Peşin Satışlar')
Kullanıcı avatarı
pasa_yasar
Üye
Mesajlar: 570
Kayıt: 07 Haz 2004 12:35

Re: Bir tabloda 3 farklı sorgu

Mesaj gönderen pasa_yasar »

Teşekkür ederim. Çalıştı.
Bir ihtiyaç oluştu tabi çalışınca. Bu şekilde sorguladıktan sonra banka adına ve cari adına göre başlık oluşturarak liste halinde yazdıracam
Örnek :

Akbank
------------------------------------------------------------------------------------
Tarih Belge Açıklama Yatırılan Çekilen
01.01.2016 Yatırılan Mevduat İşlemi 250
05.05.2016 Çekilen Ödemeler Nedeniyle 1.000

gibi.

Group by veya distinct çalışmıyor bu sorguda. Sorguda gelen belgeleri while döngüsü ile ekrana (gride) yazdırırken banka isimlerini de okutup başlık olarak yukarıdaki gibi nasıl yazıdrabilirim.
Cevapla