Forum

Sorgu -Önceki ...
 
Bildirimler
Hepsini Temizle

Sorgu -Önceki ay kayıtlarını göstermesin

8 Yazılar
4 Üyeler
0 Reactions
2,237 Görüntüleme
(@ozguraltinel)
Gönderiler: 244
Reputable Member
Konu başlatıcı
 

Merhaba arkadaşlar.

Tablomda bulunan verileri bir programa sql sorgusuyla çekiyorum. İsteğim SatisTarihi alanındaki tarih içinde bulunduğumuz aydan önceki ayalara aitse programda gözükmesin istiyorum.

Nasıl yapmam gerekiyor?

 
Gönderildi : 16/06/2012 14:50

(@RagipUNAL)
Gönderiler: 171
Estimable Member
 

Merhaba arkadaşlar.

Tablomda bulunan verileri bir programa sql sorgusuyla çekiyorum. İsteğim SatisTarihi alanındaki tarih içinde bulunduğumuz aydan önceki ayalara aitse programda gözükmesin istiyorum.

Nasıl yapmam gerekiyor?

Senin için sql kodlarını yazdım.Test yaptm güzel çalışıyor ben between koşuluyla tarih arattırdım. (Test SQL 2008 R2)

/* Tablomuzu oluşturalım */
Create table satis (
sts_id int identity(1,1) primary key,
sts_tarih datetime,
sts_isim varchar(100)
)
Go

/* Tablomuzu oluşturalım */
DECLARE @Counter Int
SET @Counter = 0
DECLARE @DateTime Datetime
SET @DateTime = GETDATE()
WHILE @Counter < 1000
   BEGIN
     INSERT INTO satis (sts_tarih,sts_isim) SELECT @DateTime-@Counter,'Ürün '+CONVERT(varchar(10),@Counter)
     SET @Counter = @Counter + 1
END
Go

/* Tabloda bulundugumuz ayın birinden, bugüne kadar olan satışlar */
Select * from satis Where sts_tarih between CONVERT(date,GETDATE()-day(getdate())+1,105) AND CONVERT(date,getdate(),105)
Go

/* Tablomuzu silelim */
Drop table satis
Go

 
Gönderildi : 17/06/2012 02:47

(@kenanilgun)
Gönderiler: 544
Üye
 

SQL Sorgunuzun WHERE kısmından sonrasına Month(
SatisTarihi ) = Month(CurrentDate_TimeStamp) şeklindede ekleme yaparak yapabilirsiniz.

Örnek ;

  SELECT * FROM table WHERE  Month( SatisTarihi ) = Month(CurrentDate_TimeStamp)

İyi çalışmalar. 

 
Gönderildi : 17/06/2012 03:36

(@RagipUNAL)
Gönderiler: 171
Estimable Member
 

Kenan bey,

Bunu bende düşünmüştüm ama  satış kayıtlarında birden fazla yıl varsa bu sefer kayıtlardaki yüm yılların içinde o aylarıda alıyor. Bundan dolayı sorguda çıkan sonuç hatalı olur.

 Select * from satis where MONTH(sts_tarih) = MONTH(GETDATE())

sonuç: 354 nolu id den sonraki kayıtlar 2011 ve 2010 yıllarına ait.

sts_id    sts_tarih    sts_isim
1    2012-06-17 00:51:09.977    Ürün 0
2    2012-06-16 00:51:09.977    Ürün 1
3    2012-06-15 00:51:09.977    Ürün 2
4    2012-06-14 00:51:09.977    Ürün 3
5    2012-06-13 00:51:09.977    Ürün 4
6    2012-06-12 00:51:09.977    Ürün 5
7    2012-06-11 00:51:09.977    Ürün 6
8    2012-06-10 00:51:09.977    Ürün 7
9    2012-06-09 00:51:09.977    Ürün 8
10    2012-06-08 00:51:09.977    Ürün 9
11    2012-06-07 00:51:09.977    Ürün 10
12    2012-06-06 00:51:09.977    Ürün 11
13    2012-06-05 00:51:09.977    Ürün 12
14    2012-06-04 00:51:09.977    Ürün 13
15    2012-06-03 00:51:09.977    Ürün 14
16    2012-06-02 00:51:09.977    Ürün 15
17    2012-06-01 00:51:09.977    Ürün 16
354    2011-06-30 00:51:09.977    Ürün 353
355    2011-06-29 00:51:09.977    Ürün 354
356    2011-06-28 00:51:09.977    Ürün 355
357    2011-06-27 00:51:09.977    Ürün 356
358    2011-06-26 00:51:09.977    Ürün 357
359    2011-06-25 00:51:09.977    Ürün 358
360    2011-06-24 00:51:09.977    Ürün 359
361    2011-06-23 00:51:09.977    Ürün 360
362    2011-06-22 00:51:09.977    Ürün 361
363    2011-06-21 00:51:09.977    Ürün 362
364    2011-06-20 00:51:09.977    Ürün 363
365    2011-06-19 00:51:09.977    Ürün 364
366    2011-06-18 00:51:09.977    Ürün 365
367    2011-06-17 00:51:09.977    Ürün 366
368    2011-06-16 00:51:09.977    Ürün 367
369    2011-06-15 00:51:09.977    Ürün 368
370    2011-06-14 00:51:09.977    Ürün 369
371    2011-06-13 00:51:09.977    Ürün 370
372    2011-06-12 00:51:09.977    Ürün 371
373    2011-06-11 00:51:09.977    Ürün 372
374    2011-06-10 00:51:09.977    Ürün 373
375    2011-06-09 00:51:09.977    Ürün 374
376    2011-06-08 00:51:09.977    Ürün 375
377    2011-06-07 00:51:09.977    Ürün 376
378    2011-06-06 00:51:09.977    Ürün 377
379    2011-06-05 00:51:09.977    Ürün 378
380    2011-06-04 00:51:09.977    Ürün 379
381    2011-06-03 00:51:09.977    Ürün 380
382    2011-06-02 00:51:09.977    Ürün 381
383    2011-06-01 00:51:09.977    Ürün 382
719    2010-06-30 00:51:09.977    Ürün 718
720    2010-06-29 00:51:09.977    Ürün 719
721    2010-06-28 00:51:09.977    Ürün 720
722    2010-06-27 00:51:09.977    Ürün 721
723    2010-06-26 00:51:09.977    Ürün 722
724    2010-06-25 00:51:09.977    Ürün 723
725    2010-06-24 00:51:09.977    Ürün 724
726    2010-06-23 00:51:09.977    Ürün 725
727    2010-06-22 00:51:09.977    Ürün 726
728    2010-06-21 00:51:09.977    Ürün 727
729    2010-06-20 00:51:09.977    Ürün 728
730    2010-06-19 00:51:09.977    Ürün 729
731    2010-06-18 00:51:09.977    Ürün 730
732    2010-06-17 00:51:09.977    Ürün 731
733    2010-06-16 00:51:09.977    Ürün 732
734    2010-06-15 00:51:09.977    Ürün 733
735    2010-06-14 00:51:09.977    Ürün 734
736    2010-06-13 00:51:09.977    Ürün 735
737    2010-06-12 00:51:09.977    Ürün 736
738    2010-06-11 00:51:09.977    Ürün 737
739    2010-06-10 00:51:09.977    Ürün 738
740    2010-06-09 00:51:09.977    Ürün 739
741    2010-06-08 00:51:09.977    Ürün 740
742    2010-06-07 00:51:09.977    Ürün 741
743    2010-06-06 00:51:09.977    Ürün 742
744    2010-06-05 00:51:09.977    Ürün 743
745    2010-06-04 00:51:09.977    Ürün 744
746    2010-06-03 00:51:09.977    Ürün 745
747    2010-06-02 00:51:09.977    Ürün 746
748    2010-06-01 00:51:09.977    Ürün 747

 
Gönderildi : 17/06/2012 03:54

(@kenanilgun)
Gönderiler: 544
Üye
 

O halde yıllarıda dahil edin sql sorgusuna sonuçta datanızın nasıl bir data olduğunu bilmediğim için o halde aşağıda tekrar bir örnek vereyim

 

Select * from satis where MONTH(sts_tarih) = MONTH(GETDATE()) AND YEAR(sts_tarih) = YEAR(CURRENT_TIMESTAMP)

 

gibi olacaktır yani bu yılın bu ayına ait olan dataları alacaksınız. 

 
Gönderildi : 17/06/2012 23:49

(@RagipUNAL)
Gönderiler: 171
Estimable Member
 

O halde yıllarıda dahil edin sql sorgusuna sonuçta datanızın nasıl bir data olduğunu bilmediğim için o halde aşağıda tekrar bir örnek vereyim

 

Select * from satis where MONTH(sts_tarih) = MONTH(GETDATE()) AND YEAR(sts_tarih) = YEAR(CURRENT_TIMESTAMP)

 

gibi olacaktır yani bu yılın bu ayına ait olan dataları alacaksınız. 

  Sizin sorgunuz çok daha basitmiş, niye benim aklıma gelmedi acaba böyle birşey. Sanırım zoru sevdiğim için bazen dolandırıyorum işleri böyle 🙂  Teşekkür ederim.

 
Gönderildi : 18/06/2012 02:19

(@kenanilgun)
Gönderiler: 544
Üye
 

Önemli değil SQL konusu ile ilgili yardımcı olabileceğim şeyler olursa paylaşırım. Bu gibi konularda tartışalım güzel örnekler çıkabilir sonuçta herkezin mantığı farklıdır bende sizin sorgunuzdan feyz alabilirim farklı konularda. ÇözümPark olarak burada paylaşım yapmaktanda ayrıca zevk almaktayım.

 

Tekrardan İyi çalışmalar. ALLAH zihin açıklığı vere herkese 

 
Gönderildi : 18/06/2012 02:44

(@serkankonak)
Gönderiler: 1339
Noble Member
 

Güzel soru ve güzel soruya Kenan kardeşimden güzel cevap soran ve cevap verenler böyle güzel olunca çok keyifli paylaşımlar oluyor 🙂

 
Gönderildi : 19/06/2012 04:13

Paylaş: