Group By ile gruplama

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
Kullanıcı avatarı
magicweb
Üye
Mesajlar: 11
Kayıt: 16 Haz 2005 03:24

Group By ile gruplama

Mesaj gönderen magicweb »

şimdi benim şu yapıya sahip 2 adet tablom var
1. tablo

tanımlar
ID KOD ACIKLAMA
---- --------- -----------
1 014 STOK1
2 015 STOK2

2.Tablo

hareket
ID KOD MIKTAR
---- ------ ------------
1 014 5
2 015 7
3 014 5
4 015 10

Benim elde etmeye çalıştığım görüntü ise

KOD ACIKLAMA MIKTAR(TOPLAM)
------ -------------- ------------
014 STOK1 10
015 STOK2 17

ben
select hareket.kod, sum(hareket.miktar) from hareketler group by hareket.kod
ile elde etmek istediğim tabloda açıklama alanı dışında istediğime ulaştım
fakat açıklama alanınıda eklemek istediğimde

select hareket.kod, sum(hareket.miktar),tanim.aciklama from hareketler,tanim group by hareket.kod

yazınca yemedi acaba nasıl yer gariban aç kalmasın :D
Kullanıcı avatarı
fahrettin
Admin
Mesajlar: 2619
Kayıt: 11 Haz 2003 10:38
Konum: İstanbul
İletişim:

Mesaj gönderen fahrettin »

iki tabloyu join yaptıktan sonta group by kısmına ACIKLAMA alanını da eklerseniz Select icinde ACIKLAMA yi da yazabilirsiniz...

Group by kullanırken Select kısmına yazabileceginiz alanlar sınırlıdır. Ya Group by icinde belirttiginiz alanları yazabilirsiniz... Ya da toplama, minimum maksimum, ortalama vs... gibi matematiksel bir islem sonucunda elde edilencek bir sonucu yazabilirsiniz.... Mininum ve maksimum gibi stringlere uygulanan fonksiyonlar da var tabi ki....
* http://www.fahrettin.org Manzara Fotoğraflarım... :)
* http://delphiturkiye.gunduz.info Seminerler... ;)
* http://www.hakmar.com.tr Kalite bir haktır... 8)
Kullanıcı avatarı
tuanna
Üye
Mesajlar: 582
Kayıt: 06 Ara 2004 05:01
Konum: Ankara
İletişim:

Mesaj gönderen tuanna »

fahrettin abide sölemiş ama

select hareket.kod, sum(hareket.miktar) from hareketler group by hareket.kod

bu kodun çalışmama meselesi bence grup by normal kullanılmış....

yani fromdan önce group by ifadesinden sonra kullanacağın guruplama alanını belirtmişsin ama

tablolar arasında ilişkilendirme kısmını bilmiyorsun...yani iki farklı tablodan veri çekerken bunları eşlertirmen lazım eşleştişrdikten sonra olur...

Eğer peki bu eşleştirmeyi nasıl ayapacam dersen ....

Delphiturk kitabının yapılsal sorgulamalar kısmının 17 nci sayfasında var...bi zahmet açıp bakarsanız kolay gelsin...
Siz hayal edin...Biz yapalım TuannaSoft...
Kullanıcı avatarı
magicweb
Üye
Mesajlar: 11
Kayıt: 16 Haz 2005 03:24

Mesaj gönderen magicweb »

he he he :D keşke sayfa numarası yerine bir link verseydin çünkü bende o kitap yo doğal olarak temin etmek istesem bile biraz zaman alır :)

şimdi o zaman benim böyle bir toplam verebilmem için her table'da açıklama alanını tutmam mı lazım
Uğur1982
Üye
Mesajlar: 383
Kayıt: 11 Mar 2005 03:18
Konum: İzmir

Mesaj gönderen Uğur1982 »

merhaba...
magicweb yazdı:şimdi o zaman benim böyle bir toplam verebilmem için her table'da açıklama alanını tutmam mı lazım
Hayır...O zaman işin tadı kaçar... :D

Şöyle bir denesene...

Kod: Tümünü seç

select h.kod,t.aciklama ,sum(h.miktar) from hareketler h
inner join tanim t on t.kod=h.kod
group by h.kod,t.aciklama 
Kullanıcı avatarı
magicweb
Üye
Mesajlar: 11
Kayıt: 16 Haz 2005 03:24

Mesaj gönderen magicweb »

teşekkürler işe yaradı sağol
Cevapla