iç içe select

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
ademcicek
Üye
Mesajlar: 409
Kayıt: 03 Eki 2003 01:50
Konum: Ankara

iç içe select

Mesaj gönderen ademcicek »

herkese kolay gelsin.

benim malzemeleri listeleyen bir sql'lim var.

select id,malzeme_adi ,Miktar,Birimi ,sum(tutar) from Piyasa_Fiyat_Arastirmasi
where id=:id and firma_adi=:firma_adi order by sum(tutar)

yukarıda kod güzel çalıyor. ama başka bir sql ile firmaları toplam tutarlarına göre sıralattırıyorum. onun için malzemelerinde firmların toplam tutarlarına göre sıralatmam gerekiyor.
ben burada firma ismina gruplayıp toplam tutara göre order by çekip malzemeleri ona göre sıralatmak istiyorum.

yardımcı olursanız sevinirim.
Kullanıcı avatarı
fahrettin
Admin
Mesajlar: 2619
Kayıt: 11 Haz 2003 10:38
Konum: İstanbul
İletişim:

Mesaj gönderen fahrettin »

Oncelikle hangi veritabanını kullandığınızı lutfen belirtin... Sonrasında da yazdığınız kodu code taglari içinde yazmanız kolay anlaşılmayı sağlar ki bu da cevap alma ihtimalinizi arttırır....

Kod: Tümünü seç

select id,malzeme_adi ,Miktar,Birimi ,sum(tutar) 
from Piyasa_Fiyat_Arastirmasi 
where id=:id and firma_adi=:firma_adi 
order by sum(tutar) 
Şimdi bu kod gayet güzel çalışıyor diyorsunuz ama ya şu an bende b ir dalgınlık var da bir şey iatlıyorum ya da bu kodun şalışmaması lazım... Zira kodda group by goremedim.

Dolayısıyla tam problemi ve isteğinizi de anlayamadım açıkcası....
* http://www.fahrettin.org Manzara Fotoğraflarım... :)
* http://delphiturkiye.gunduz.info Seminerler... ;)
* http://www.hakmar.com.tr Kalite bir haktır... 8)
ademcicek
Üye
Mesajlar: 409
Kayıt: 03 Eki 2003 01:50
Konum: Ankara

Mesaj gönderen ademcicek »

Kullandığım veri tabanı ms sql server..abi ben onu önceden denemeiştim. şimdide denedim aşağıdaki hatayı veriyor. galiba gruplama yapamam gerekiyor.
ben biraz tapldan bahsedeyim.tabloya kayıt girerken mesela üç firma 5 malzeme var. toplam database kayıt yaparken 15 kayıt ekliyor. ben bu sql ihtiyaç duymamın nedeni rapordan kaynaklı. rapor normal değil yani.

raporun şöyle olması gerekiyor. firmalar en düşük fiyat verenden en yükeseğe doğru sıralanıyor. malzemeler bir kere yazdırılıyor.

firma adı
adem firması-- fahrettin firması--- mustafa firması
malzeme birim fiyat- toplam fiyat
1adet kalem 1500 1500
1adet defer 1200 1200
1adet kağıt 1600 1600
toplam fiyat = 4300


şeklinde olacak. malzemeleride firma toplam fiyatına göre sıralattırabilirsem galiba sorun bitecek


---------------------------
Debugger Exception Notification
---------------------------
Project Ihale.exe raised exception class EOleException with message 'Column 'Piyasa_Fiyat_Arastirmasi.id' is invalid in the select list because it is not contained in an aggregate function and there is no GROUP BY clause'. Process stopped. Use Step or Run to continue.
---------------------------
OK Help
---------------------------



kolay gelsin
Kullanıcı avatarı
sadettinpolat
Moderator
Mesajlar: 2131
Kayıt: 07 Ara 2003 02:51
Konum: Ankara
İletişim:

Mesaj gönderen sadettinpolat »

ademcicek yazdı:---------------------------
Debugger Exception Notification
---------------------------
Project Ihale.exe raised exception class EOleException with message 'Column 'Piyasa_Fiyat_Arastirmasi.id' is invalid in the select list because it is not contained in an aggregate function and there is no GROUP BY clause'. Process stopped. Use Step or Run to continue.
---------------------------
OK Help
---------------------------



kolay gelsin
id alanı benzersiz olduğu için grup by yer alması mantıksız olur.
Piyasa_Fiyat_Arastirmasi.id alanını sorgu sonuçlarına dahil etmeden group by ifadesini çalıştırmayı deneyin.
Cevapla