sql de string ifadenin sayısını alma
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
sql de string ifadenin sayısını alma
selamlar arkadaşlar
ben bir yemekhane otomasyonu ile uğraşıyorum...şimdi tablodan query ile kullanıcının seçtiği tarihler arası ve seçilen işyerine göre yediği yemek sayısını almam gerekiyor...
yani tabloda yenen adlı bir alanda yazılı olan kahvaltı,öğle ve akşam gibi string ifadeleri toplayıp sayısını göstermek istiyorum...
acil yardımcı olursanız sevinirim
ben bir yemekhane otomasyonu ile uğraşıyorum...şimdi tablodan query ile kullanıcının seçtiği tarihler arası ve seçilen işyerine göre yediği yemek sayısını almam gerekiyor...
yani tabloda yenen adlı bir alanda yazılı olan kahvaltı,öğle ve akşam gibi string ifadeleri toplayıp sayısını göstermek istiyorum...
acil yardımcı olursanız sevinirim
-
- Kıdemli Üye
- Mesajlar: 395
- Kayıt: 22 Tem 2004 09:15
- Konum: İzmir
- İletişim:
Selam,
işinizi görecektir.
Kod: Tümünü seç
SELECT Yemektipi,COUNT(yemektipi) Adet FROM tablo GROUP BY yemektipi
Doğan Zorlu, İzmir
------------------------
"Bu Kitap'ı sana yalnız şunun için indirdik: Hakkında ayrılığa düştükleri şeyi onlara iyice açıklayasın ve Kitap, iman eden bir topluluk için kılavuz ve rahmet olsun." (NAHL 64)
------------------------
"Bu Kitap'ı sana yalnız şunun için indirdik: Hakkında ayrılığa düştükleri şeyi onlara iyice açıklayasın ve Kitap, iman eden bir topluluk için kılavuz ve rahmet olsun." (NAHL 64)
count sayısal ifadelerde geçerli değil mi
sayın hocam bildiğim kadarıyla count integer tipte değişkenlerde kullanıyo
ben ise string ifadelerin toplamını bulmak istiyorum
yani yenen alanında öğle yazanları toplucam mesela....
öğle yazanların toplamını alcam gibi...
bu işime yaramadı
ben ise string ifadelerin toplamını bulmak istiyorum
yani yenen alanında öğle yazanları toplucam mesela....
öğle yazanların toplamını alcam gibi...
bu işime yaramadı
Kod: Tümünü seç
var syemeksayisi,oyemeksayici,ayemeksayisi,i:integer;
yemektipi:string;
begin
ayemeksayisi:=0;
oyemeksayici:=0;
ayemeksayisi:=0;
Query1.First;
for i:=1 to Query1.RecordCount do
begin
yemektipi:=Query1.FieldByName('yemektipin').AsString;
if yemektipi='sabah' then
inc(syemeksayisi)
else if yemektipi='öğle' then
inc(oyemeksayici)
else inc(ayemeksayisi);
Query1.Next;
end;
end;
illada sql ile yapmak zorunda değilsen kod ile böyle yap. ve tabloya yemektiplerini sabah öğle akşam diye kayıt etme 0 1 2 gibi kaydet yada s o a gibi, daha hızlı arama yapabilirsin. kullanıcı arayüzünde istediğin gibi göster ama bu tür az değer alan şeyleri en küçük boyutta kaydet kolay gelsin.
yemeklere sabit bir integer(byte da olur esasında) sayı atayıp öyle yapsanız yemek isimlerinide başka bir tablodan çekseniz sanki süper olur 
mesela benim yemek tablom için
1 Kahvaltı
2 10 çayı+kek
3 12 öğle yemeği öncesi atıştırma
4 öğle yemeği 1
5 öğle yemeği 2
6 2 çayı
7 5 çayı+kek
8 ilkindi yemeği
9 akşam yemeği
10 televizyon karşısı atıştırması
11 televizyon karşısı yemeği
12 yatsı yemeği
bu liste uzar gider

mesela benim yemek tablom için
1 Kahvaltı
2 10 çayı+kek
3 12 öğle yemeği öncesi atıştırma
4 öğle yemeği 1
5 öğle yemeği 2
6 2 çayı
7 5 çayı+kek
8 ilkindi yemeği
9 akşam yemeği
10 televizyon karşısı atıştırması
11 televizyon karşısı yemeği
12 yatsı yemeği
bu liste uzar gider

.-.-.-.-.-.-.-. ^_^
-
- Kıdemli Üye
- Mesajlar: 395
- Kayıt: 22 Tem 2004 09:15
- Konum: İzmir
- İletişim:
Re: count sayısal ifadelerde geçerli değil mi
Selam,
COUNT, ilgili koşula uyan kayıt sayısını verir ki ;
Yenen
--------------
kahvalti
kahvalti
öğle
kahvalti
kahvalti
kahvalti
akşam
akşam
ifadenizden tablonuzdaki kolonun bu şekilde olduğu anlaşılıyor. Eğer deseydiniz ki yenen adlı alanda 1 2 3 gibi değerler var ve ben bunların toplamını almak istiyorum, o zaman SUM kullancaktınız. Eğer alan sayısal değilse o zaman önce sayısal bir tip e dönüştürüp, sonra toplam aldıracaktınız.
Kolay gelsin,
'Toplamını bulmak' ve 'Adedini Bulmak' iki ayrı kavramdır. Bunun için SQL de iki ayrı aggregate fonksiyon bulunur. Birisi SUM ve birisi de COUNT.sekocan yazdı:sayın hocam bildiğim kadarıyla count integer tipte değişkenlerde kullanıyo ben ise string ifadelerin toplamını bulmak istiyorum yani yenen alanında öğle yazanları toplucam mesela....
öğle yazanların toplamını alcam gibi... bu işime yaramadı
COUNT, ilgili koşula uyan kayıt sayısını verir ki ;
yani;şimdi tablodan query ile kullanıcının seçtiği tarihler arası ve seçilen işyerine göre yediği yemek sayısını almam gerekiyor...
yani tabloda yenen adlı bir alanda yazılı olan kahvaltı,öğle ve akşam gibi string ifadeleri toplayıp sayısını göstermek istiyorum...
Yenen
--------------
kahvalti
kahvalti
öğle
kahvalti
kahvalti
kahvalti
akşam
akşam
ifadenizden tablonuzdaki kolonun bu şekilde olduğu anlaşılıyor. Eğer deseydiniz ki yenen adlı alanda 1 2 3 gibi değerler var ve ben bunların toplamını almak istiyorum, o zaman SUM kullancaktınız. Eğer alan sayısal değilse o zaman önce sayısal bir tip e dönüştürüp, sonra toplam aldıracaktınız.
Kolay gelsin,
Doğan Zorlu, İzmir
------------------------
"Bu Kitap'ı sana yalnız şunun için indirdik: Hakkında ayrılığa düştükleri şeyi onlara iyice açıklayasın ve Kitap, iman eden bir topluluk için kılavuz ve rahmet olsun." (NAHL 64)
------------------------
"Bu Kitap'ı sana yalnız şunun için indirdik: Hakkında ayrılığa düştükleri şeyi onlara iyice açıklayasın ve Kitap, iman eden bir topluluk için kılavuz ve rahmet olsun." (NAHL 64)