IBQUERY1.close;
IBQUERY1.sql.clear;
IBQUERY1.SQL.Add('select * from KAYITLAR where sonuc like ''%'+BOX1.Text+'%'''+ 'and sonuc_idari like ''%'+BOX2.Text+'%'''+ 'and sonuc_mali like ''%'+BOX3.Text+'%'''+ 'and adi like ''%'+ad.Text+'%'''+ 'and SOYADI like ''%'+SOYAD.Text+'%'''+ 'and GOREVI like ''%'+GOREV.Text+'%'''+ 'and GOREV_YERI like ''%'+GOREVYERI.Text+'%'''+ 'and FIIL like ''%'+FIIL.Text+'%'''+ 'and a_s_o like '''+TURU.Text+'%'''+ 'and FIIL like ''%'+FIIL.Text+'%'' group BY SORUSTURMA_sayi);
IBQUERY1.open;
yukarıdaki kodu yazınca aşağıdaki hatayı alıyorum. Forumda aradım ama benim kodla alakalı bir sonuca varamadım.
herhangi bir toplama işlemi değil ki. Sadece evrak kayıt numarası. Evrak kayıt numaraları aynı olanları gruplandırmak istiyorum sadece. Herhangi bir matematiksel işlem yok yani...
DOĞUNUN SINIR TAŞI ERZURUM'UN DADAŞ'I
EFE'Sİ VAR İZMİR'İN EĞİLMEZ TÜRK' ÜN BAŞI
select evrakkayitno,count(*) from table group by evrakkayitno
Şeklinde yazarsan her evrakkayitno nun kaç kere listelendigini de ögrenirsin. Amacin sadece kayitlievrak nolari bir kez görmek ise distinct i kullanabilirsin. Distinct ile yazınca group by i yazmana gerek kalmaz.
herhangi bir toplama işlemi değil ki. Sadece evrak kayıt numarası. Evrak kayıt numaraları aynı olanları gruplandırmak istiyorum sadece. Herhangi bir matematiksel işlem yok yani...
Gruplandırdığınız zaman bazı değerler üst üste çakışır. ya toplam alınır, ya ortalama yapılır v.s.
farklı farklı olabilecek alanları raporun dışına çıkarmanız lazım.
peki tablonuzda sadece tarih ve sayı alanları mı var.
select ifadesinde * kullanmışsınız diğer alanları ne yapacak bu durumda.
hangi kaydınkini alacak? onlarda aynı ise group by da aynı olan alanların hepsini yazmanız lazım.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Grup sorgularda bir grup kayda karşılık birden fazla değer gelmektedir. O yüzden group by ile gruplanan değerler dışında kalan bilgileri direk sorgu içinde listelemesi için yazılamazlar. Önce bunun mantığını kavrayıp ona göre sorgu yazmalısınız. Yani
select Tarih, Sayi from KAYITLAR
where ....
group by Tarih, Sayi
şeklinde sorgu yazmak zorundasın. Çünkü diğer alanları direk select içine eklemek bir mantık hatası olacaktır. Hatta sadece sadece bu alanların çeşitlerini göstermek isteyen kod aşağıdaki gibi de gruplamadan distinct sorgusuyla da olabilir.
'select * from KAYITLAR ............... şeklide değilde 'select tarih,sayi from KAYITLAR ............ ieklinde yaoınca hemen hemen istediğim gibi oldu. Gerisini ben kendime göre değiştiririm.
Tşk.
DOĞUNUN SINIR TAŞI ERZURUM'UN DADAŞ'I
EFE'Sİ VAR İZMİR'İN EĞİLMEZ TÜRK' ÜN BAŞI