Forum

Sql Sorgu İsteği
 
Bildirimler
Hepsini Temizle

Sql Sorgu İsteği

9 Yazılar
2 Üyeler
0 Reactions
936 Görüntüleme
(@Anonim)
Gönderiler: 0
Konu başlatıcı
 

select cari_kod, sum (borc - kapatilmis_tutar) as Sonuc,VADE_TARIHI from tblcahar where cari_kod <='8888' and VADE_TARIHI>CAST( CONVERT( CHAR(8), GetDate(), 112) AS DATETIME)

group by cari_kod ,VADE_TARIHI

arkadaşlar böyle bir sorgum var bu sorguda yapmak istediğim tarih sonucuna göre haftalara bölmek yani 1. hafta da sonuç tutarı şukadar 2 haftada sonuç tutarı şu kadar gibi.Carilere göre

 
Gönderildi : 12/04/2011 13:31

(@cozumpark)
Gönderiler: 16307
Illustrious Member Yönetici
 

CAST( CONVERT( CHAR(8), GetDate(), 112) AS DATETIME) işe yaramasına sevindim.


select cari_kod, sum (coalesce(borc - kapatilmis_tutar,0)) as Sonuc, DATEPART(YEAR,VADE_TARIHI) AS 'Yıl',DATEPART(wk,VADE_TARIHI) AS 'Hafta #' , VADE_TARIHI from tblcahar where cari_kod <='8888' and VADE_TARIHI>CAST( CONVERT( CHAR(8), GetDate(), 112) AS DATETIME) group by cari_kod ,VADE_TARIHI, DATEPART(YEAR,VADE_TARIHI), DATEPART(wk,VADE_TARIHI)


Siz istememişsiniz ancak önceki paylaştığınız sorguda riskli bir kısım var o da Sonuc. Toplama giren kısımlarda null değerler varsa bütün sonucu etkileyecektir. Bunu önlemek için Coalesce fonksiyonunu kullnarak null değerlerin toplamı etkilemesini önledim.


NOT: Sorgu çalışırken hata verirse ayıraç olarak kullandığınız "," karakteri yerine ";" karakterini kullanarak tekrar deneyin.

 
Gönderildi : 12/04/2011 15:50

(@Anonim)
Gönderiler: 0
Konu başlatıcı
 

Mert Bey Çok Teşekkürler bu 3 oldu sorunumu çözdünüz. Son Verdiğiniz Kod da sağlıklı bir şekilde çalıştı. :d

 
Gönderildi : 12/04/2011 17:12

(@Anonim)
Gönderiler: 0
Konu başlatıcı
 

Haftaları istediğim gibi listeledim ama benim yapmak istediğim 1.Hafta 11-27 Nisan vb.. gibi bişey yazabilirmiyiz, Haftaların hangi tarihler arasında olduğunu ayrı bi kolonda listeleyebilirmiyiz.

 
Gönderildi : 12/04/2011 17:44

(@cozumpark)
Gönderiler: 16307
Illustrious Member Yönetici
 

O zaman sorgumuz şöyle olsun:


select cari_kod, sum (coalesce(borc - kapatilmis_tutar,0)) as Sonuc, DATEPART(YEAR,VADE_TARIHI) AS 'Yıl',DATEPART(wk,VADE_TARIHI) AS 'Hafta #' , MIN(DATEADD(wk, DATEDIFF(wk, 0, dbo.tbEgitim.kayittarihi), 0)) AS 'Haftanın İlk Günü Tarihi', MIN(DATEADD(wk, DATEDIFF(wk, - 7, dbo.tbEgitim.kayittarihi), 0)) AS 'Haftanın Son Günü Tarihi', VADE_TARIHI from tblcahar where cari_kod <='8888' and VADE_TARIHI>CAST( CONVERT( CHAR(8), GetDate(), 112) AS DATETIME) group by cari_kod ,VADE_TARIHI, DATEPART(YEAR,VADE_TARIHI), DATEPART(wk,VADE_TARIHI)

 
Gönderildi : 12/04/2011 18:06

(@Anonim)
Gönderiler: 0
Konu başlatıcı
 

Mert Bey Çok Teşekkürler örnek verdiğin sorgu sorunsuz çalıştı.

 
Gönderildi : 13/04/2011 11:45

(@cozumpark)
Gönderiler: 16307
Illustrious Member Yönetici
 

Çalışmasına memnun oldum.


Yalnız bir yerde yanlış yazdığımı farkettim: MIN(DATEADD(wk, DATEDIFF(wk, - 7, dbo.TBLCAHAR.VADE_TARIHI), 0)) yazdığımızda bir sonraki haftanın ilk gününü göstermiş oluyoruz haftanın son günü olarak ki bu yanlış olmuş.


Bunun yerine MIN(DATEADD(wk, DATEDIFF(wk, - 7, dbo.TBLCAHAR.VADE_TARIHI), - 2)) yazılmalı

 
Gönderildi : 13/04/2011 11:51

(@Anonim)
Gönderiler: 0
Konu başlatıcı
 

MIN(DATEADD(wk, DATEDIFF(wk,-6, dbo.TBLCAHAR.VADE_TARIHI),0))

Mert Bey Sizin dediğinizi daha önceden farketmiştim hatta onu sizin dediğiniz gibi -6 da yapmıştım ama olmadı, heralde  kodun fonksiyonu böyle diye düşündüm siz cavabı verince o satırı sizinle paylaşmak istedim, kod satırı yukarıdadır, -6 yaptığım halde başlangıç tarihini (11.04.2011 pazartesi ) bitiş tarihini (18.04.2011) olarak sorguyu döndürüyor, Sorun sizce ne olabilir kodlar aynı değişen bişey yok.

 İyi Çalışmalar

 
Gönderildi : 13/04/2011 14:53

(@cozumpark)
Gönderiler: 16307
Illustrious Member Yönetici
 

Yanlış referans olmasın diye önceki mesajda düzelttim; dener misiniz

 
Gönderildi : 13/04/2011 15:04

Paylaş: