gruplayarak toplama

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
alakel
Üye
Mesajlar: 45
Kayıt: 03 Nis 2007 02:42

gruplayarak toplama

Mesaj gönderen alakel »

s.a. herkese iyi çalışmalar

yaptığım projede demir metrajı giriliyor tablo yapısı

çap boy adet toplam boy toplamagırlık
8 2 3 6 2,37
8 4 3 12 4,74
10 12 1 12 7,404
12 8 2 16 14,208
10 4 2 8 4,936
14 8 3 24 28,998
16
18
16
18
10
12
.........

burada yapmak istediğim çapı 8,10,12 olanların toplam agırlıklarını ayrı almak, 14,16,18 olanların toplam agırlıklarını ayrı almak istiyorum forumda araştırdım bulamadım kendim birşey yapmak istedim. şöyle bir store procedure yazdım ama olmadı
yardımlarınız için teşekkür ederim.

begin
select sum(toplamagirlik) from demirmetraj
where cap=8 and cap=10 and cap=12 and mahallerid=:gelen
into kucuktoplam;

select sum(toplamagirlik) from demirmetraj
where cap=14 and cap=16 and cap=18 and mahallerid=:gelen
into buyuktoplam;

update mahaller set
KUCUK=:kucuktoplam,
buyuk=:buyuktoplam
where mahallerid=:gelen;
end
Kullanıcı avatarı
unicorn64
Üye
Mesajlar: 919
Kayıt: 04 Nis 2006 08:56
Konum: yine yeniden Ankara ^_^

Re: gruplayarak toplama

Mesaj gönderen unicorn64 »

bir kaydın bir alanındaki değer tektir, yani çap alanındaki değer hem 8 hem de 10 olamaz ki...

sanırım şöyle bir düzenleme işinizi görecektir...

Kod: Tümünü seç

select sum(toplamagirlik) from demirmetraj
where (cap=8 or cap=10 or cap=12) and mahallerid=:gelen
into kucuktoplam;

select sum(toplamagirlik) from demirmetraj
where (cap=14 or cap=16 or cap=18) and mahallerid=:gelen
into buyuktoplam;

bazen yükselmek için önce dibi görmek gerekir...

forumda soru sormadan önce bakılmalı bence
daha fazlası için...

yürümeyi öğrenmeden koşmaya çalışanlar için, tökezleyip düşmek kaçınılmazdır...

Resim
alakel
Üye
Mesajlar: 45
Kayıt: 03 Nis 2007 02:42

Re: gruplayarak toplama

Mesaj gönderen alakel »

ilgine teşekkür ederim.
bir alandaki değer neden tek olsun. satır satır aynı isimde birden çok kayıt olabilir
emin_as
Üye
Mesajlar: 559
Kayıt: 01 Eki 2008 10:05
Konum: izmir
İletişim:

Re: gruplayarak toplama

Mesaj gönderen emin_as »

select sum(toplamagirlik) from demirmetraj
where cap=8 and cap=10 and cap=12 and mahallerid=:gelen
into kucuktoplam;

Bu kullanım yanlış. cap=8 ve cap=10 vs diye yapamazsın. Bu sana herhangi bir sonuç vermez.
Cap hem 8 hem 10 hem de 12 olamaz, ya 8 ya 10 veya 12 olacaktır.

Kod: Tümünü seç

select sum(toplamagirlik) from demirmetraj
where cap in (8,10,12) and mahallerid=:gelen
into kucuktoplam;
Şeklinde düzenleyebilirsin. Eğer amacın 8, 10 ve 12 likleri ayrı ayrı gruplamaksa

Kod: Tümünü seç

select cap,sum(toplamagirlik) from demirmetraj
where cap in (8,10,12) and mahallerid=:gelen
group by cap
into kucuktoplam;
diyerek 8, 10 ve 12 likleri ayrı ayrı toplam aldırabilirsin. İlk sorgu tek satır verirken bu group by lı sorgu 3 satir bilgi verecektir.
alakel
Üye
Mesajlar: 45
Kayıt: 03 Nis 2007 02:42

Re: gruplayarak toplama

Mesaj gönderen alakel »

çok teşekkür ederim.

select sum(toplamagirlik) from demirmetraj
where cap in (8,10,12) and mahallerid=:gelen
into kucuktoplam;

bu kod işimi gördü
Kullanıcı avatarı
unicorn64
Üye
Mesajlar: 919
Kayıt: 04 Nis 2006 08:56
Konum: yine yeniden Ankara ^_^

Re: gruplayarak toplama

Mesaj gönderen unicorn64 »

benim yazdığım da aynı işi yapıyordu ki...
bazen yükselmek için önce dibi görmek gerekir...

forumda soru sormadan önce bakılmalı bence
daha fazlası için...

yürümeyi öğrenmeden koşmaya çalışanlar için, tökezleyip düşmek kaçınılmazdır...

Resim
alakel
Üye
Mesajlar: 45
Kayıt: 03 Nis 2007 02:42

Re: gruplayarak toplama

Mesaj gönderen alakel »

slm yanlış analdınız bende zaten sizin yazdığınız kodu kullandım. yani size teşekkür ediyorum. orda iki seçenek sunmuşsunuz. bende, bu kod işimi gördü dedim. yardımlarınız teşekkür ederim.
Cevapla