Firebird çoklu Tarih sorgusu

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
AhmetNuri
Üye
Mesajlar: 261
Kayıt: 02 Tem 2007 07:55
Konum: ist
İletişim:

Firebird çoklu Tarih sorgusu

Mesaj gönderen AhmetNuri »

Firebird tabloda kayıtlı tarihlere göre birden fazla tarih için sorgu yapıp gruplamak mümkünmü?
Buna benzer bir kod forumda gördüm fakat tam anlayamadım.
Örneğin
Tablo :Siparis
Alanlar : Id,SiparisTarih,Musteri,Miktar
Veriler :1 01.01.2008 Ali 10
2 01.02.2008 Veli 100
3 01.03.2008 Ali 20
4 01.05.2008 Ali 40
İstenile Rapor
Tarih 1 Tarih2 Tarih3 Tarih4
Ali 10 20 40
Veli 100

Sql ile böyle bir rapor çıkartmak mümkün mü ? yada bu rapor için ne yapmamı tavsiye edersiniz?

Teşekkürler
iyi çalışmalar
Ahmet DENİZ
mcihad
Üye
Mesajlar: 283
Kayıt: 18 Tem 2003 03:28
Konum: Sivas

Re: Firebird çoklu Tarih sorgusu

Mesaj gönderen mcihad »

FastReport içindeki Cross-tab reports konusunu biraz incele. İstediğin işi yapıyor
Bize iyilik yaraşır.
Kullanıcı avatarı
Kuri_YJ
Moderator
Mesajlar: 2248
Kayıt: 06 Ağu 2003 12:07
Konum: İstanbul
İletişim:

Re: Firebird çoklu Tarih sorgusu

Mesaj gönderen Kuri_YJ »

Selamlar,

Yapmak istediğinizi tam anlayamadım,

Ancak SQL'de IN diye bir şey var,

Kod: Tümünü seç

SELECT * 
FROM TABLO
WHERE FIELD1 IN ('ADNAN', 'DİLEK', 'DİLAN', 'DERYA) 
gibi bir örnekte, FIELD1 için ADNAN DİLEK DİLAN vya DERYA'dan herhangi biri için sonuç döndürür.

Bu işinizi görür sanırım. Ayrıca GROUP BY FIELD1 dersek

Kod: Tümünü seç

SELECT FIELD1, SUM(FIELD2) 
FROM TABLO
WHERE FIELD1 IN ('ADNAN', 'DİLEK', 'DİLAN', 'DERYA) 
GROUP BY FIELD1
FIELD2'nin toplamını FIELD1'lere göre gruplayarak getirecektir.

Kolay Gelsin
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Re: Firebird çoklu Tarih sorgusu

Mesaj gönderen rsimsek »

Firebird 2.1 sürümünden itibaren desteklenen LIST fonksiyonu işinizi görecektir.

viewtopic.php?f=18&t=23303
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
AhmetNuri
Üye
Mesajlar: 261
Kayıt: 02 Tem 2007 07:55
Konum: ist
İletişim:

Re: Firebird çoklu Tarih sorgusu

Mesaj gönderen AhmetNuri »

Kod: Tümünü seç

where
MUSTERI.SIPARISTARIHI  IN ('03.03.2000', '03.03.2001')
bu şekilde oldu ama sadece yazılan tarihleri veriyor. bana sanırım 2 tarih arası lazım
veriyi yıllık gruplaması lazım.
01.01.2000 ile 31.12.2000 arasını nasıl gruplarım ?
rsimsek yazdı:Firebird 2.1 sürümünden itibaren desteklenen LIST fonksiyonu işinizi görecektir.

viewtopic.php?f=18&t=23303
Hocam daha 1.0 dan 2.0 a yeni geçtim. sanırım 2.1 biraz sorunluymuş. formumlardan okuduğum kadarı ile. onun için bekliyorum. 2.0 ile nasıl yaparım bu işlemi?
Ahmet DENİZ
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Re: Firebird çoklu Tarih sorgusu

Mesaj gönderen aslangeri »

s.a.
in yerine between kullanarak çözebilirsin
kolay gelsin
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
AhmetNuri
Üye
Mesajlar: 261
Kayıt: 02 Tem 2007 07:55
Konum: ist
İletişim:

Re: Firebird çoklu Tarih sorgusu

Mesaj gönderen AhmetNuri »

aslangeri yazdı:s.a.
in yerine between kullanarak çözebilirsin
kolay gelsin
A.S.
between kullandığım zaman sadece 1 yıl gruplanabiliyor.
Benim 2000,2001...2008 e kadar her yılı ayrı ayrı gruplamam gerekiyor.
Ahmet DENİZ
AhmetNuri
Üye
Mesajlar: 261
Kayıt: 02 Tem 2007 07:55
Konum: ist
İletişim:

Re: Firebird çoklu Tarih sorgusu

Mesaj gönderen AhmetNuri »

Ustalar, bu konuda çok sıkıştım ve yaptığım deneler istediğim sonucu vermedi. Konuya daha ayrıntılı olarak bir kere daha açıklamak istiyorum.
Şimdi siparişlerin tutulduğu bir tablo var.
Bu tabloda ürün grupları,sipari nosu, siparis tarihi, toplam fiyat.... var
Bu bilgilerden bir rapor çıkartmam gerekiyor.
Aylık üretim raporu
ürün gruplarına göre haftalık rapor vermeli.
Firebird 2.1.1 e terfi edip denedim, List fonksiyonu çok kullanışlı bir fonksiyon. Fakat list fonksiyonu benim istediğim işi yapmıyor.
Ahmet DENİZ
emin_as
Üye
Mesajlar: 559
Kayıt: 01 Eki 2008 10:05
Konum: izmir
İletişim:

Re: Firebird çoklu Tarih sorgusu

Mesaj gönderen emin_as »

Firebird haftalik , aylik veya yillik tarihlere göre gruplandırma yapman mümkün.

Aşagıdakine benzer kod işini görür.

Kod: Tümünü seç

select carikod, carigrup, extract(month from tarih), sum(tutar) from tablo
where   ....  //  nasil bir süzme gerekiyorsa
 group by 1,2,3     // ilk 3 alana göre gruplandır
order by 3    // 3. alana göre sırala
extract (month from tarih ) null veya 1 ile 12 arasini döndürür.
extract(week from tarih) null veya 1 ile 52 arasi
extract (year from tarih) null veya girili tarihin yili

week destegi firebird 2.1 ile gelmiştir. Önceki versiyonlarda çalışmaz.
Cevapla