Aşağıdaki örnekteki gibi bir tablonun sütunlarını tüm özellikleriyle listeleyebilirsiniz
use veritabani_adi go SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = N'tablo_adi'
Yazdığınız programda satır toplamı alma işini direk olarak veritabanında yapmak isteyebilirsiniz.
Bu işlemi yapabilmek için rollup veya cube komutlarını kullanmanız gerekir.
Aşağıda bunların kullanımını örnekledim;
deneme_not1 isminde şöyle bir tablomuz olsun
Örnek olarak şu kayıtları girelim
rollup ve cube için bir kaç deneme yapıp sonucunu görelim
Görüldüğü üzere rollup ile aldığımız sorgu, group by alanında belirttiğimiz sütunlara göre toplam oluşturuyor, cube ile aldığımız sorgu ise farklı sütun kombinasyonları için tek tek toplamlar oluşturuyor.
Son olarak da mantığı daha net görebilmek için basit bir örnek yapalım
Sorguda dikkatinizi çekmesi gereken bir nokta da isnull() fonksiyonu, cube ve rollup toplamlara bağlı sütun değerini null olarak döndürdüğü için eğer nullsa Toplam yaz mantığıyla bu fonksiyonu kullanabiliyoruz.
Mssql veritabanında datetime alanı üzerinde toplama ve çıkarma yapabilmek için hazırladığım kod aşağıdadır
Datetime kolonlarını dakika bazında birbirinden çıkarıyor ve ilgili tabloya yerleştiriyor.
select servis_personelcalismasuresi.sureid, servis_personelcalismasuresi.personelid, (personel_kimlik.ad + ' ' + personel_kimlik.soyad) personel, sum((DATEDIFF(n, CAST('00:00' AS DATETIME), servis_personelcalismasuresi.mesaibitis) -DATEDIFF(n, CAST('00:00' AS DATETIME), servis_personelcalismasuresi.mesaibaslangic))) mesai from servis_personelcalismasuresi inner join personel_kimlik on personel_kimlik.personelid=servis_personelcalismasuresi.personelid group by servis_personelcalismasuresi.sureid, servis_personelcalismasuresi.personelid, personel_kimlik.ad, personel_kimlik.soyad order by servis_personelcalismasuresi.sureid desc