Ayın İlk Günü ve Son Gününü Bulma

Kaçıncı ay olduğu ve hangi yıl için hesaplanacağı parametre olarak gönderilen ve bu değerler için o ayın ilk ve son gününü hesaplayan bir Stored Procedeure yazmak istersek:

CREATE Proc sp_AyinIlkSonGunu
@Yil int,
@Ay int
as
declare @SonrakiAy int
if @Ay<>12
set @SonrakiAy=@Ay+1
else
set @SonrakiAy=1
select convert(datetime, convert(char(4),@Yil)+right('0'+convert(varchar,@Ay),2)+'01')IlkGun
,dateadd(d,-1,convert(datetime,convert(char(4),@Yil)+right('0'+convert(varchar,@SonrakiAy),2)+'01'))SonGun



Peki bu prosedürü nasıl çalıştıracağız?

EXEC sp_AyinIlkSonGunu 2007,9

Tarih bilgisini bileşenlerine ayırma

select getdate()Tarih,datepart(year,getdate())yil, datepart(month,getdate())ay
, datepart(day,getdate())gun, datepart(hour,getdate())saat
, datepart(minute,getdate())dakika, datepart(second,getdate())saniye
, datepart(millisecond,getdate())milisaniye

Çıktısı:





.

SQL sorgunuzun result setini excel ya da html dosyaya yazma

  • Sorgu sonucunu excel dosyaya yazma:

sp_makewebtask @outputfile = N'C:\Documents and Settings\ZEYNEP\Desktop\deneme1.xls',@query='select * from tablom where ad=''ZeyNep'''


  • Sorgu sonucunu html dosyaya yazma:


sp_makewebtask @outputfile = N'C:\Documents and Settings\ZEYNEP\Desktop\deneme2.html',@query='select * from tablom where ad=''ZeyNep'''

İki tablodan birinde olup diğerinde olmayan verileri bulma

İki tablonuz var ve birinde olup diğerinde olmayan özel değerleri bulmak istiyorsunuz. Peki nasıl yapacaksınız?

Aşağıdaki gibi iki tane marka tablomuz olsun. Tablo isimlerinin sırayla MarkaA ve MarkaB olduklarını kabul edelim.











MarkaA tablosunda olup MarkaB tablosunda olmayan markaları nasıl mı öğreneceğiz? İşte böyle:


Select Marka as A_daOlupB_deOlmayanMarkalar from MarkaA as t1 where not exists (Select 1 from MarkaB as t2 where t1.Marka =t2.Marka )

Veritabanı tablonuzdaki kolon isimlerini öğrenme

  • SELECT s.name as TabloAdi, c.name as KolonAdi
    FROM sysobjects s inner join syscolumns c on s.id=c.id
    WHERE s.xtype = 'u' and s.name='TABLOMUNADI'

ya da

  • EXEC sp_columns @table_name = 'TABLOMUNADI'

Hadi Null değerlerden kurtulalım :)

Veritabanı ile etkileşimli işlemler yapanlar için null değerler çoğu zaman sorun olmuştur.
İşte ilk ip ucumuz null değerleri nasıl elemine edebileceğimiz üzerine.
Bu amaçla iki transaqt- sql fonksiyonu sıklıkla kullanılmaktadır.

Coalesce: Bu fonksiyon parametre olarak aldığı değerlerden null olmayan ilkinin değerini geri döndürür.




Yandaki gibi bir tablomuz olduğunu düşünelim. Sorgu sonucunda null değerlerin 0 olarak görünmesini nasıl sağlarız?





Select coalesce(a,0) as a, coalesce(b,0) as b, coalesce (c,0) as c from tablom
Çıktısı:









select a,b,c, coalesce(a,b,c) as NullOlmayanIlkDeger from tablom
Çıktısı:










  • İsNull: Null değerleri belirttiğiniz ifade ile değiştirir.

Kullanımı coalesce fonksiyonuna benzemektedir:

Select isnull(a,0) as a, isnull(b,0) as b, isnull (c,0) as c from #temp

İşte başlıyoruz....

Başlıyoruz bakalım hadi hayırlısı:)

top