merhaba arkadaşlar , ben bir tablodan veri çekiyorum ve tarihi göre sıralıyorumb buraya kadar bir sorun yok .şimdi getirdiğim verilerin içinde ilk kayıttan başlayarak bir önceki kayıttaki tarihi göre dakika farkına bakıyorum ve fark 1 dk fazla olan ilk kaydı getirmem gerekiyor fakat bir türlü cümleciği kuramadım yardımcı olursnz çok sevinirm TEŞEKKÜRLER

soruldu: 15 May '15, 07:12

aspci's gravatar image

aspci
759404757
cevap kabul oranı: 25%


id ve tarih kolonu olan tbldate adında bir tablo oluşturum.

Eğer SQL Server 2012 yada üzeri bir sürüm kullanılıyorsa:

select *,DATEDIFF(MINUTE,x.OncekiTarih,x.tarih) as dk from 
(
    SELECT id ,tarih, 
    LAG(p.tarih) OVER (ORDER BY p.tarih) OncekiTarih
    --,LEAD(p.tarih) OVER (ORDER BY p.tarih) SonrakiTarih
      FROM tbldate p
)x
order by tarih

LAG(p.tarih) OVER (ORDER BY p.tarih) OncekiTarih -> kayıtları tarihe göre sıralar ve bir önceki kaydın tarih değerini alır

LEAD(p.tarih) OVER (ORDER BY p.tarih) SonrakiTarih -> kayıtları tarihe göre sıralar ve bir sonraki kaydın tarih değerini alır

Eğer SQL Server 2012 dan önceki bir sürümü kullanılıyorsa:

WITH CTE AS (
SELECT
    p.id,
    rownum = ROW_NUMBER() OVER (ORDER BY p.tarih),
    p.tarih
    FROM tbldate p
)
SELECT 
    CTE.id,
    CTE.tarih,
    prev.tarih OncekiTarih,
    nex.tarih SonrakiTarih,
    DATEDIFF(MINUTE,prev.tarih,CTE.tarih) as dk
    FROM CTE
    LEFT JOIN CTE prev ON prev.rownum = CTE.rownum - 1
    LEFT JOIN CTE nex ON nex.rownum = CTE.rownum + 1

iyi çalışmalar

permanent link

cevaplandı: 15 May '15, 08:12

M%C3%BCsl%C3%BCm%20%C3%96ZT%C3%9CRK's gravatar image

Müslüm ÖZTÜRK
10.6k103690
cevap kabul oranı: 28%

değiştirildi: 15 May '15, 08:35

çalıştırdım bilginiz için teşekkür ederim

(15 May '15, 09:05) aspci aspci's gravatar image
Cevabınız
toggle preview

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×238
×77
×53

Soruldu: 15 May '15, 07:12

Görüntüleme: 400 kez

Son güncelleme: 15 May '15, 09:05

powered by BitNami OSQA