SQL Server’da En Son Girilen Tarihten Bir Gün Önceki Tarihe Erişmek

Herkese merhaba,

Bu yazıda sizlere SQL Server’da en son girilen tarihten bir gün önceki tarih bilgisine nasıl erişebiliriz bundan bahsedeceğim.

Konu bir uygulama yazarken ortaya çıktı. Yazılan uygulama toplantı uygulamasıydı.

Yazılan toplantı uygulamasında bir önceki toplantının tarih bilgisine ihtiyaç duydum. Ayrıca her bir toplantının da kendine ait bölümleri vardı. Satış, Pazarlama vb. bölümleri gibi.

Bu tarihe nasıl erişecektim?

Konu ile ilgili örnek kodları veritabanı oluşturarak yaptım. Sizler de deneyerek inceleyebilirsiniz.

--Tablo oluşturulması                              

CREATE TABLE Toplantilar (
ToplantiID INT PRIMARY KEY IDENTITY(1,1),
ToplantiAdi NVARCHAR(100),
ToplantiBolum NVARCHAR(100),
ToplantiTarih SMALLDATETIME
)
  

--Tabloya veri eklenmesi


  INSERT INTO dbo.Toplantilar
          ( ToplantiAdi ,
            ToplantiBolum ,
            ToplantiTarih
          )
  VALUES  (N'Haftalık Toplantı' , -- ToplantiAdi - nvarchar(100)
            N'Satış' , -- ToplantiBolum - nvarchar(100)
            '2018.03.15'  -- ToplantiTarih - smalldatetime
          )

  INSERT INTO dbo.Toplantilar
          ( ToplantiAdi ,
            ToplantiBolum ,
            ToplantiTarih
          )
  VALUES  (N'Haftalık Toplantı' , -- ToplantiAdi - nvarchar(100)
            N'Satış' , -- ToplantiBolum - nvarchar(100)
            '2018.03.18'  -- ToplantiTarih - smalldatetime
          )


  INSERT INTO dbo.Toplantilar
          ( ToplantiAdi ,
            ToplantiBolum ,
            ToplantiTarih
          )
  VALUES  (N'Haftalık Toplantı' , -- ToplantiAdi - nvarchar(100)
            N'Satış' , -- ToplantiBolum - nvarchar(100)
            '2018.03.22'  -- ToplantiTarih - smalldatetime
          )


  INSERT INTO dbo.Toplantilar
          ( ToplantiAdi ,
            ToplantiBolum ,
            ToplantiTarih
          )
  VALUES  (N'Aylık Toplantı' , -- ToplantiAdi - nvarchar(100)
            N'Pazarlama' , -- ToplantiBolum - nvarchar(100)
            '2018.04.11'  -- ToplantiTarih - smalldatetime
          )


  INSERT INTO dbo.Toplantilar
          ( ToplantiAdi ,
            ToplantiBolum ,
            ToplantiTarih
          )
  VALUES  (N'Aylık Toplantı' , -- ToplantiAdi - nvarchar(100)
            N'Pazarlama' , -- ToplantiBolum - nvarchar(100)
            '2018.04.19'  -- ToplantiTarih - smalldatetime
          )

--Listelenmesi

SELECT * FROM dbo.Toplantilar

--En son toplantıdan bir önceki toplantı tarihine erişilmesi

SELECT  ToplantiTarih
        FROM    Toplantilar
WHERE   ToplantiTarih < '2018.03.22' AND  ToplantiBolum=N'Satış'
        AND  ToplantiTarih NOT IN  (
        SELECT  ToplantiTarih
        FROM    Toplantilar
        WHERE   ToplantiTarih < ( SELECT    MAX(ToplantiTarih)
                                  FROM      Toplantilar
                                  WHERE     ToplantiBolum = N'Satış'
                                            AND ToplantiTarih < '2018.03.22'
                                ) ) 

Görüldüğü üzere satış bölümüne ait en son yapılan toplantıdan önceki toplantının tarih bilgisine eriştim. Bölüm bilgisini değiştirerek benzer sonuçlar alabilirsiniz.

Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.

593 Kez Okundu

Yavuz Selim Kart

Yazılım ve veri tabanında bildiklerimi anlatmaya gayret ediyorum. Halen birçok programlama dili üzerinde araştırmalar yaparak kendimi geliştiriyorum. Bunlar haricinde Grafik Tasarım ve Wordpress konularına da ilgim bulunmakta. SEO ve Sosyal medya yönetimleri hakkında da bilgim mevcuttur. Kısaca çok çalışmayı seven azimli biriyim.

You may also like...

Yazı kopyalamak yasaktır!