with veri.IBQ_Form_001_Listele do
begin
Database := Veri.IBDatabase1 ;
SQL.Clear ;
SQL.Add('Select Count(*) as Toplam_Kayit,') ;
SQL.Add('Case DURUM When 0 then ''Aktif'' When 1 then ''Göç Etti'' When 2 then ''Geçici Olarak Göç Etti'' When 3 then ''Öldü'' end as Durum') ;
SQL.Add(' from FORM_001 ') ;
SQL.Add('Where KURUM_IDNO=:PKURUM_IDNO') ;
SQL.Add(' Order By MUHTARLIK,SOKAK,HANE_NO,SOYADI,DOGUM_TARIHI,ADI');
ParamByName('PKURUM_IDNO').AsString := AktifKurumIDNO ;
Open ;
Caption:= FieldByName('Toplam_Kayit').Text ;
end ;
Hata şu:
SQL.Error code = -104
Invalid expression in the select list(not contained in either an aggregate function on the GROUP BY clause)
Bu hatayı nasıl giderebilirim.
Teşekkürler...
akıllanma , aklını başına toplama , toparlanma , kendisini derleme bu dünyaya ait bir vazife.
ahirette nasıl olsa aklın başına gelecek.
Select Count(*) as Toplam_Kayit,
Case DURUM
When 0 then ''Aktif''
When 1 then ''Göç Etti''
When 2 then ''Geçici Olarak Göç Etti''
When 3 then ''Öldü''
end as Durum
from FORM_001
Where KURUM_IDNO=:PKURUM_IDNO
GROUP BY Durum
GROUP BY kullanmadığınızdan sanırım hata verdi.
Burada Order By 'a gerek yoktur. Select ifadesinde COUNT kullandığınız için Sıralamayı ancak Toplam_Kayit veya Durum alanlarına göre yapabilirsiniz. Bu da pek anlamlı olmaz.
Sizin görmek istediğiniz sonuç sanırım şu : KurumID'si XX olan kayıtlardan kaçı Aktif, kaçı Göç Etti vesaire.
Select Count(*) as Toplam_Kayit,ADI,SOYADI,BABA_ADI,
Case DURUM
When 0 then ''Aktif''
When 1 then ''Göç Etti''
When 2 then ''Geçici Olarak Göç Etti''
When 3 then ''Öldü''
end as Durum
from FORM_001
Where KURUM_IDNO=:PKURUM_IDNO
GROUP BY Durum,ADI,SOYADI,BABA_ADI
Herkese kolay gelsin.
akıllanma , aklını başına toplama , toparlanma , kendisini derleme bu dünyaya ait bir vazife.
ahirette nasıl olsa aklın başına gelecek.