[SORGU] satır toplamlarını her satırda bir (SQL server)
#1
Merhaba
a,b,c,d,e diye sütunlarımız olsun.

a sütunu aynı olan kayıtların b sütunu toplamlarını d sütununa c sütunu toplamlarını e sütununa toplatmak istiyorum.
Ör
a,b,c,d,e
1,1,1,,
1,2,1,,
1,2,2,,
2,1,1,,
2,2,2,,
2,3,2,,

komutu çalıştırığımda tablo şu şekle gelmeli

a,b,c,d,e
1,1,1,5,4
1,2,1,5,4
1,2,2,5,4
2,1,1,6,5
2,2,2,6,5
2,3,2,6,5

bu işlemi şu şekilde yapabiliyorum.

sql kodu = "SELECT SUM(b) AS Tb, sum© as Tc FROM tablo where a= 1"

bu kod ile elde ettiğim toplamları
sql kodu = "Update tablo SET d= Tb, e=Tc where a=1" ile update ediyorum.

satır sayısı artttıkça her a sütunundaki farklı kayıt için sql kodunu çalıştırmam gerekiyor.
sql de bunun kolay bir yolu olmalı


yardımlarınız için teşekkür ederim.




  Alıntı
Bu mesajı beğenenler:
#2
Merhaba..

Tek bir güncelleme sorgusuyla istediğiniz işlemi yapabilirsiniz.. Elbette DSum fonksiyonundan faydalanarak... Wink

SQL
  1. UPDATE tablo SET d = Dsum("b","tablo","a= " & [a]),
  2. e = Dsum("c","tablo","a= " & [a])



Not: Fonksiyondaki kriter alanı sayı veri tipi olarak ön görülmüştür.. Eğer metin veri tipi ise fonksiyonu bu şekilde kullanmalısınız..:

Dsum("c","tablo","a= '" & [a] &"' ")



  Alıntı
Bu mesajı beğenenler:
#3
Merhaba,
amacım tek satır kod ile bunu yapmak.
tablomda 100 bin satır var. a sütununda ise birbirinden farklı 5000 bin değişik kayıt var.
yani a sütunumda 100 tane a 300 b 500 c ... var.
hali ile a değerini bir döngünün içinden alıp dsum fonksiyonuna vermem gerekiyor. bunu bir döngüye sokmadan tek satır ile nasıl halledebilirim.
tabloyu önce group by ile gurupladım. ancak bu bile 5000 defa sorgu çalıştırmamı gerektiriyor. bunun bir pratiği olmalı..
saygılar..



  Alıntı
Bu mesajı beğenenler:
#4
Sayin cferamus@yahoo.com;

Taruz Hocanin verdigi SQL sorusunu uyguladinizmi?
a sutunu gruplayip, b sutunu toplayip, e sutununa yazdirma amaci isteniyor ise SQL isinizi gorur. Ornek VT uzerinden de sorunuzu sorabilirsiniz.



  Alıntı
Bu mesajı beğenenler:
#5
Merhaba,
tek bir sql komutu ile yapabilirmiyim diye sormuştum.
Hali hazırda

sql kodu = "SELECT a,SUM(b) AS Tb,....FROM tablo group by a" ile gurupladım.
bu kodu bir recordset e bağladım.
do loop ile recordset teki tüm kayıtları sırası ile aldım.

sonrasında
sql kodu = "Update tablo SET d= Tb, e=Tc where a=recordset.a"
ile gurupladığım toplamları yazdırdım.

bu işlemi tek bir sql komutu ile halledebilirmiydim? dsum kullanmaktan kaçtım. şu an mdb dosyasına yazıyorum ancak ileride bunu sql server a taşıdığımda kodu yeniden yazmam gerekecek.

saygılar



  Alıntı
Bu mesajı beğenenler:
#6
(19-03-2014, 14:10)cferamus@yahoo.com demiş ki: tek bir sql komutu ile yapabilirmiyim diye sormuştum.
dsum kullanmaktan kaçtım.

Tek bir SQL'i Taruz Hacamizin verdigi kod ile yapilir. VB'nin icinde soruyu calistirmak isterseniz CurrenDB.Execute "update....." yazip tek hamle ile istenen dosyanin birinci kaydindan sonuna kadar d-e sutunlarina deger yazdirabilirsin. a sutununu gruplayip baska tabloda ozet olusturulabilir.

Kolay gelsin.....



  Alıntı
Bu mesajı beğenenler:


Benzer Konular...
Konu: Yazar Cevaplar: Gösterim: Son Mesaj
  [SORGU] Row-number() Yada Satır Sayısı kahramanselim 2 381 15-10-2024, 16:26
Son Mesaj: kahramanselim
  [RAPOR] Satır Aralarında Boşluk Olması meceka 1 353 31-05-2024, 15:16
Son Mesaj: dsezgin
  Access Formu üzerinden Sql Server Tabloya Nasıl Veri Kaydı Yapılır karacahil 4 666 15-02-2024, 12:10
Son Mesaj: halily
  Açılır Kutu Değerine Göre Tablo2'ye Değer Yazsın Veya Satır Eklesin. ŞabanTR 11 996 24-12-2023, 14:38
Son Mesaj: dsezgin
  Altformda Hücre Ile Değil Satır Ile Işlem Yapma Hakkında. OGUZTURKYILMAZ 1 451 22-04-2023, 23:48
Son Mesaj: OGUZTURKYILMAZ
  [SORGU] Ilgili Satırda Bir önceki Satırın Notlarını Görmek dmn815 2 432 15-10-2022, 09:48
Son Mesaj: dmn815
  [SORGU] Son 10 Kayıt Hariç Tabloda Satır Silme hedefkaya 9 841 03-09-2022, 17:59
Son Mesaj: halily
  Ilgili Satırda 'eksik Işleç' Hatası tarkanaykın 3 398 30-05-2022, 11:40
Son Mesaj: dsezgin

Foruma Git:


Bu konuyu görüntüleyen kullanıcı(lar): 1 Ziyaretçi