lostyazilim
tr.link

iki veri arasındaki değişimi bulmak

9 Mesajlar 939 Okunma
lstbozum
tr.link

berrynetwork berrynetwork WM Aracı Kullanıcı
  • Üyelik 08.04.2014
  • Yaş/Cinsiyet 40 / E
  • Meslek web design ve yazılım
  • Konum Antalya
  • Ad Soyad N** U**
  • Mesajlar 181
  • Beğeniler 16 / 24
  • Ticaret 2, (%100)
arkadaşlar merhaba, kişinin aldığı puanlara göre değişkik gösteren bir puanlama sistemim var. örneğin şu andaki puanı 90 olan bir kişi için not A iken, bir süre sonra pu anı 95e çıkarsa not otomatik olarak A+ oluyor ve bu not eğer önceki kayıttan farklıysa, yani önceki notu A iken şimdi A+ olmuşsa ilgili tabloya yeni notu kaydediyor. Örneğin;


üye : 1
not : A
tarih : 30.05.2017

üye: 1
not : A+
tarih : 31.05.2017


gibi tabloda tutuyorum. Yapmak istediğim şey şu. en sonra notuyla bir önceki notunu gösterip, şu tarihte değişti gibi ekrana yazdırmak istiyorum. Üyenin bilgilerinin yer aldığı sayfada, 31.05.2017 tarihinde notu A'dan A+'ya değişmiştir gibi yazdırmak istiyorum. Bunu nasıl yapabileceğim konusunda bilgisi olan arkadaşlar varmı?
 

 

wmaraci
reklam

1yenibilgi 1yenibilgi Bilgi paylaştıkça çoğalır Kullanıcı
  • Üyelik 04.06.2014
  • Yaş/Cinsiyet 35 / E
  • Meslek Yazılım Uzmanı
  • Konum İstanbul Anadolu
  • Ad Soyad S** G**
  • Mesajlar 160
  • Beğeniler 16 / 46
  • Ticaret 4, (%100)
sql de şöyle yapabilirsin.

Select * from kayitlar k1
left join kayitlar k2 on k2.uye = k1.uye and k2.tarih =DATEADD(day,-1,k1.tarih)
Where k1.puan <> k2.puan
 

 

berrynetwork berrynetwork WM Aracı Kullanıcı
  • Üyelik 08.04.2014
  • Yaş/Cinsiyet 40 / E
  • Meslek web design ve yazılım
  • Konum Antalya
  • Ad Soyad N** U**
  • Mesajlar 181
  • Beğeniler 16 / 24
  • Ticaret 2, (%100)
hocam cevabınız için teşekkürler ancak sorguda belirttiğiniz k1 ve k2 değerlerini oturtamadım kafamda. Yani not ismiyle gelen tek bir sütun var. orda çözümleyemedim verdiğiniz kodu.
 

 

1yenibilgi 1yenibilgi Bilgi paylaştıkça çoğalır Kullanıcı
  • Üyelik 04.06.2014
  • Yaş/Cinsiyet 35 / E
  • Meslek Yazılım Uzmanı
  • Konum İstanbul Anadolu
  • Ad Soyad S** G**
  • Mesajlar 160
  • Beğeniler 16 / 46
  • Ticaret 4, (%100)
aynı tabloada sorgulama yaptığımız için tablolara takma isim verdim.

k1 ve k2 değişken ismi gibi düşünebilirsiniz. kayitlar tablosuna denk gelmektedir.
 

 

wmaraci
wmaraci

berrynetwork berrynetwork WM Aracı Kullanıcı
  • Üyelik 08.04.2014
  • Yaş/Cinsiyet 40 / E
  • Meslek web design ve yazılım
  • Konum Antalya
  • Ad Soyad N** U**
  • Mesajlar 181
  • Beğeniler 16 / 24
  • Ticaret 2, (%100)
şimdi anladım hocam. peki bu sorgu ile belirttiğim şekilde ekrana yazıyı nasıl yazdırabirim?
 

 

1yenibilgi 1yenibilgi Bilgi paylaştıkça çoğalır Kullanıcı
  • Üyelik 04.06.2014
  • Yaş/Cinsiyet 35 / E
  • Meslek Yazılım Uzmanı
  • Konum İstanbul Anadolu
  • Ad Soyad S** G**
  • Mesajlar 160
  • Beğeniler 16 / 46
  • Ticaret 4, (%100)
bu sql sorgu diliyle yazılmış.
kullandığınız programlama diliyle db ye bağlanıp sorgu çekin. size değişenlerin listesini dönecektir.
farkı yakalamak içinde sorguyu aşağıdaki gibi düzenleyebilirsin.
Select uye,k2.puan as EskiPuan, k1.puan as YeniPuan from kayitlar k1
left join kayitlar k2 on k2.uye = k1.uye and k2.tarih =DATEADD(day,-1,k1.tarih)
Where k1.puan <> k2.puan
 

 

berrynetwork berrynetwork WM Aracı Kullanıcı
  • Üyelik 08.04.2014
  • Yaş/Cinsiyet 40 / E
  • Meslek web design ve yazılım
  • Konum Antalya
  • Ad Soyad N** U**
  • Mesajlar 181
  • Beğeniler 16 / 24
  • Ticaret 2, (%100)
hocam sanırım ben anlatamadım demek istediğimi. sorgudaki yeni ve eski puanı ekrana yazdırabilmek için değişkene nasıl atayabilirim onu sormuştum ben.
 

 

MertTpz MertTpz merttopuz.com Kullanıcı
  • Üyelik 16.07.2015
  • Yaş/Cinsiyet 27 / E
  • Meslek Bilgisayar Müh. Öğrencisi
  • Konum İstanbul Anadolu
  • Ad Soyad M** T**
  • Mesajlar 215
  • Beğeniler 94 / 93
  • Ticaret 23, (%100)
Hocam veritabanına 2 sütun oluşturun.
Birinci sütunda kişinin eski notu, ikinci sütunda yeni notu yer alsın.
Çünkü bunun farklı bir şekilde hafızada kalması zor olacaktır.

Veya tek sütunda çözmem gerek derseniz;
Sütuna kayıt yaparken eskiNot@@yeniNot gibi bir kayıt yaptırın.
explode ile @@ den ayırarak eski ve yeni notu almış olun.

Gerisi zaten yazdırma işlemleri
 

 

berrynetwork berrynetwork WM Aracı Kullanıcı
  • Üyelik 08.04.2014
  • Yaş/Cinsiyet 40 / E
  • Meslek web design ve yazılım
  • Konum Antalya
  • Ad Soyad N** U**
  • Mesajlar 181
  • Beğeniler 16 / 24
  • Ticaret 2, (%100)
hocam teşekkürler bu mantık için. bu mantığı en kısa zamanda deneyeceğim. tekrar teşekkürler.
 

 

wmaraci
wmaraci
Konuyu toplam 1 kişi okuyor. (0 kullanıcı ve 1 misafir)
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al