sql de tarihe göre sorgu alma

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
ozlemsaltan
Üye
Mesajlar: 38
Kayıt: 01 Nis 2014 05:57

sql de tarihe göre sorgu alma

Mesaj gönderen ozlemsaltan »

arkadaşlar kolay gelsin basit bir sorum olacak belki ama ben net bir çözüm bulamadım. örneğin not adı altında bir tablom var tablonun içinde 300 kayıt var bunun 100 tanesi özlem kullanıcısının notu,100 tanesi fatmanın,75 tanesi ayşenin 25 i de velinin notu bulunmakta. Tablo da musno,nottarihi,acıklama diye alanlar var. Benim yapmak istediğim bu kullanıcıların en son girildiği tarihteki notunu görmek. özlemin bugn tarihli girilmiiş en son notunu,fatmanın 3 gün önce ki tarihli en son notunu bla bla.. bunları görmek istediğim bir sorguya ihtiyacım var. toplamda 4 tane veri dönecek bana.Yardımcı olursanız çok sevinirim. Teşekkürler
Çaylak yazılımcı:)
Kullanıcı avatarı
xozcanx
Üye
Mesajlar: 362
Kayıt: 05 Oca 2012 12:55

Re: sql de tarihe göre sorgu alma

Mesaj gönderen xozcanx »

Merhaba,
hangi sorgu yada sorguları denediniz örnek verirseniz daha hızlı sonuç alırsınız.
Autoinc bir alanınız var ise yada tarih alanının datetime ise zamana göre son girilen kaydı görüntüleyebilirsiniz.

Kod: Tümünü seç

Select top 1 * From Tablom Where musno=1 and nottarihi ='tarih' order by nottarihi desc
veya 
Select top 1 * From Tablom Where musno=1 and nottarihi ='tarih' order by ID desc
gibi
Nasibinde varsa, alırsın karıncadan bile ders, Nasibinde yoksa, bütün cihan önüne serilse, sana ters..
Kullanıcı avatarı
ozlemsaltan
Üye
Mesajlar: 38
Kayıt: 01 Nis 2014 05:57

Re: sql de tarihe göre sorgu alma

Mesaj gönderen ozlemsaltan »

merhaba aslında 4 kişiyi örnek verdim binlerce kişi ve binlerce not olduğunu düşünün tabloda. ben her kişinin her notunun en son tarihli girilen kayıtlarını görmem lazım. 5000 kişinin 10000 notu olabilir toplamda bana sorgu sonucunda 5000 vermesi lazım o yüzden yukarıda ki kodlar istediğimi vermiyor.
Ben şunları denedim(isimlere sayılara takılmayınız)
SELECT DISTINCT id,sayi,isim
FROM deneme
GROUP BY id
HAVING MAX(sayi)
/////////////////////
SELECT id,sayi,isim
FROM deneme AS t
WHERE sayi =( SELECT MAX(sayi)
FROM deneme
WHERE id =t.id )
////////////
SELECT id,sayi,isim
FROM deneme d
WHERE sayi = (SELECT MAX(sayi)
FROM deneme
GROUP BY id
HAVING id =d.id);
Çaylak yazılımcı:)
Kullanıcı avatarı
xozcanx
Üye
Mesajlar: 362
Kayıt: 05 Oca 2012 12:55

Re: sql de tarihe göre sorgu alma

Mesaj gönderen xozcanx »

Kod: Tümünü seç

Select 
  *
From
Senin_Tablon
Where Not_Tarihi
IN 
(
Select 
MAX( Not_Tarihi )
From 
Senin_Tablon
Group By KULLANICI_ISIMLERI_YADA_KULLANICI_IDLERI
)
Birde bu şekilde, kendinize göre düzenleyerek deneyin.
Nasibinde varsa, alırsın karıncadan bile ders, Nasibinde yoksa, bütün cihan önüne serilse, sana ters..
Kullanıcı avatarı
ozlemsaltan
Üye
Mesajlar: 38
Kayıt: 01 Nis 2014 05:57

Re: sql de tarihe göre sorgu alma

Mesaj gönderen ozlemsaltan »

SELECT * FROM (
SELECT MB.MUSNO,MN.NOTTRH,MN.NOTKAYNAKID,MN.ACIKLAMA,IL.ILACIKLAMA FROM musbilgi MB
LEFT OUTER JOIN ililce IL ON (IL.ILKOD = MB.ILID AND IL.ILCEKOD=MB.ILCEID)
LEFT JOIN urunbilgi UBB ON UBB.MUSNO=MB.MUSNO
LEFT JOIN musnot MN ON MN.MUSNO=MB.MUSNO
WHERE MB.SILINDI = "H"
AND UBB.AKTIF="E"
AND UBB.SOZLESMETIPID IN(1,2,3,3)
AND MN.NOTTRH= ( SELECT MAX(NOTTRH)
FROM musnot
GROUP BY MUSNO)
GROUP BY MB.MUSNO,UBB.URUNID
ORDER BY MB.MUSNO,UBB.VERSIYONID DESC
) AS kelmamut group by musno

şu şekilde uyarladım fakat hiç bir sorgu alamıyorum. nerede hatam var sizce?
Çaylak yazılımcı:)
Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2360
Kayıt: 12 Haz 2003 04:05
Konum: merkez camii yanı

Re: sql de tarihe göre sorgu alma

Mesaj gönderen freeman35 »

kelmamut yüzünden muhtemelen :)
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5

Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
Kullanıcı avatarı
ozlemsaltan
Üye
Mesajlar: 38
Kayıt: 01 Nis 2014 05:57

Re: sql de tarihe göre sorgu alma

Mesaj gönderen ozlemsaltan »

yaaaa orasını karıştıma :D bi cevabın var mı peki?
Çaylak yazılımcı:)
aLonE CoDeR
Kıdemli Üye
Mesajlar: 1223
Kayıt: 26 Nis 2005 04:08

Re: sql de tarihe göre sorgu alma

Mesaj gönderen aLonE CoDeR »

Mysql için;

Kod: Tümünü seç

select notu_yazan, max(not_tarihi) as not_tarihi, 
(select not_iceriği from nottablosu nts where nts.not_tarihi=max(nt.not_tarihi) and
nt.musterino=nts.musteri_no limit 1) as not_iceriği from nottablosu nt
group by notu_yazan
Kullanıcı avatarı
csunguray
Üye
Mesajlar: 855
Kayıt: 09 Ara 2006 05:08
Konum: Adana
İletişim:

Re: sql de tarihe göre sorgu alma

Mesaj gönderen csunguray »

Aşağıdaki kod ile notlara tarihe göre bir sıra numarası verebiliriz. Daha sonra da SIRA_NO alanı 1 olan kayıtlarla JOIN yaparak istediğiniz sonucu alabilirsiniz. Takılırsanız yardımcı olmaya çalışırım.

Kod: Tümünü seç

SELECT 
  MN.MUSNO, 
  MN.NOTTRH, 
  MN.ACIKLAMA,
  MN.NOTKAYNAKID,
  ROW_NUMBER() OVER (PARTITION BY MN.MUSNO ORDER BY MN.MUSNO, MN.NOTTRH DESC) AS SIRA_NO 
FROM 
  musnot MN 
C. Sunguray
csunguray at netbilisim.kom
Net Bilişim Hizmetleri

Sıradan her programcı bilgisayarın anlayabileceği kodlar yazabilir.
Sadece iyi programcılar insanların da anlayabileceği kodlar yazarlar.
Martin Fowler (http://martinfowler.com/)
Kullanıcı avatarı
ozlemsaltan
Üye
Mesajlar: 38
Kayıt: 01 Nis 2014 05:57

Re: sql de tarihe göre sorgu alma

Mesaj gönderen ozlemsaltan »

arkadaşlar sorunu çözdüümmm

SELECT MB.MUSNO,mn.MUSNO,mn.NOTTRH,mn.ACIKLAMA,mn.NOTKAYNAKID,IL.ILACIKLAMA,CONCAT_WS("",K.KURUMAD,S.AD," ",S.SOYAD)AS "AD"
FROM musnot mn
INNER JOIN musbilgi MB ON MB.MUSNO=mn.MUSNO
left outer join ililce IL ON (IL.ILKOD = MB.ILID)
left outer join sahis S ON S.MUSNO=mn.MUSNO
left outer join kurum K ON K.MUSNO=mn.MUSNO
LEFT JOIN urunbilgi UBB ON UBB.MUSNO=mn.MUSNO

INNER JOIN (
SELECT a.MUSNO, max(a.NOTTRH) as trh FROM musnot a
GROUP BY a.MUSNO
) AS mnn ON (mnn.MUSNO=mn.MUSNO) AND (mnn.trh = mn.NOTTRH)
WHERE MB.SILINDI = "H"
AND UBB.AKTIF="E"
AND UBB.SOZLESMETIPID IN(1,2,3,3)
group by mn.MUSNO



Cevaplarınız için teşekkür ederiiim :)
Çaylak yazılımcı:)
Kullanıcı avatarı
csunguray
Üye
Mesajlar: 855
Kayıt: 09 Ara 2006 05:08
Konum: Adana
İletişim:

Re: sql de tarihe göre sorgu alma

Mesaj gönderen csunguray »

Sıradan her programcı bilgisayarın anlayabileceği kodlar yazabilir.
Sadece iyi programcılar insanların da anlayabileceği kodlar yazarlar.

Kodlarınızı daha düzenli yazarsanız çok faydasını görürsünüz.
C. Sunguray
csunguray at netbilisim.kom
Net Bilişim Hizmetleri

Sıradan her programcı bilgisayarın anlayabileceği kodlar yazabilir.
Sadece iyi programcılar insanların da anlayabileceği kodlar yazarlar.
Martin Fowler (http://martinfowler.com/)
Kullanıcı avatarı
ozlemsaltan
Üye
Mesajlar: 38
Kayıt: 01 Nis 2014 05:57

Re: sql de tarihe göre sorgu alma

Mesaj gönderen ozlemsaltan »

bu kodun daha düzgün yazılmış halini gösterebilir misiniz? ne demek istediğinizi anlamadım. Hem ben de öğrenmiş olurum :)) gelişmem için yardımınız dokunmuş olur. Teşekkürler
Çaylak yazılımcı:)
Kullanıcı avatarı
csunguray
Üye
Mesajlar: 855
Kayıt: 09 Ara 2006 05:08
Konum: Adana
İletişim:

Re: sql de tarihe göre sorgu alma

Mesaj gönderen csunguray »

Kod: Tümünü seç

SELECT 
  MB.MUSNO,
  MN.MUSNO,
  MN.NOTTRH,
  MN.ACIKLAMA,
  MN.NOTKAYNAKID,
  IL.ILACIKLAMA,
  CONCAT_WS("", K.KURUMAD, S.AD, " ", S.SOYAD) AS "AD"
FROM 
  musnot MN
  INNER JOIN musbilgi MB ON (MB.MUSNO = MN.MUSNO)
  LEFT OUTER JOIN ililce IL ON (IL.ILKOD = MB.ILID)
  LEFT OUTER JOIN sahis S ON (S.MUSNO = MN.MUSNO)
  LEFT OUTER JOIN kurum K ON (K.MUSNO = MN.MUSNO)
  LEFT JOIN urunbilgi UBB ON (UBB.MUSNO = MN.MUSNO)
  INNER JOIN 
   (SELECT 
      MN3.MUSNO, 
      MAX(MN3.NOTTRH) as trh 
    FROM 
      musnot MN3 
    GROUP BY 
      MN3.MUSNO
   ) AS MN2 ON (MN2.MUSNO = MN.MUSNO) AND (MN2.trh = MN.NOTTRH)
WHERE 
  MB.SILINDI = "H" AND
  UBB.AKTIF = "E" AND
  UBB.SOZLESMETIPID IN (1, 2, 3, 3)
GROUP BY 
  MN.MUSNO
C. Sunguray
csunguray at netbilisim.kom
Net Bilişim Hizmetleri

Sıradan her programcı bilgisayarın anlayabileceği kodlar yazabilir.
Sadece iyi programcılar insanların da anlayabileceği kodlar yazarlar.
Martin Fowler (http://martinfowler.com/)
Kullanıcı avatarı
ozlemsaltan
Üye
Mesajlar: 38
Kayıt: 01 Nis 2014 05:57

Re: sql de tarihe göre sorgu alma

Mesaj gönderen ozlemsaltan »

teşekkür ederim :)
Çaylak yazılımcı:)
Cevapla