folder Tahribat.com Forumları
linefolder Database - Veritabanı
linefolder Veritabanından Girilen Değere En Yakın Değere Sahip Kaydı Çağırmak



Veritabanından Girilen Değere En Yakın Değere Sahip Kaydı Çağırmak

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    the_ilkay
    the_ilkay's avatar
    Kayıt Tarihi: 04/Nisan/2008
    Erkek
    Elimde yaklaşık 700 kayıttan oluşan bir SQL veritabanım var.İçinde en, boy ve fiyat bilgileri var.
    Kullanıcının girmiş olduğu en ve boy bilgilerine en yakın olan kaydı çağırmam gerekiyor.
    Örnek vermek gerekirse.Tabloda 3 kayıt olduğunu varsayalım.

    en boy fiyat
    500 300 100
    600 400 150
    700 550 200

    Kullanıcınıcımızın girmiş olduğu en=540 boy=330 olduğunda bunlara en yakın olan kayıtlar en=500 boy=300 satırından fiyat bilgisi çekilip kullanıcıya 100 ytl olarak göstermem lazım.Bir iki deneme yaptım (where en<540 nd boy<330 limit 1 ) gibi ama tam net bir sorgu oluşturamadım.Bu anlattıklarımı yapabilmem için nasıl bir sorgu yazmam lazım?

    Kimi zaman sevmektir dünya...
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    renegadealien
    renegadealien's avatar
    Üstün Hizmet Madalyası Savaş Madalyası Başarı Madalyası Üstün Hizmet Madalyası Developer Madalyası
    Kayıt Tarihi: 23/Mart/2003
    Erkek

    en>değer-100 and en<değer+100 and boy>değer-100 and boy<değer+100 ü çağırıp, yada duruma göre bu 100 değerini küçültüp, top(1) dierek ilk gelen kaydı cağırabilirsin...

    Biraz garip bi işlem olmuş, sql yerine arama algoritmasıyla bulmak daha mantıklı olabilir belki


    10.05.2013 tarihli google arama sonucu : Aradığınız - "herşeyin hayırlısı rampanın bayırlısı" - ile ilgili hiçbir arama sonucu mevcut değil. Kendi özlü sözümdür, kaynak belirterek kullanınız.
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Musket
    Musket's avatar
    Üstün Hizmet Madalyası
    Kayıt Tarihi: 09/Haziran/2002
    Erkek

    the_ilkay bunu yazdı:
    -----------------------------
    Elimde yaklaşık 700 kayıttan oluşan bir SQL veritabanım var.İçinde en, boy ve fiyat bilgileri var.
    Kullanıcının girmiş olduğu en ve boy bilgilerine en yakın olan kaydı çağırmam gerekiyor.
    Örnek vermek gerekirse.Tabloda 3 kayıt olduğunu varsayalım.

    en boy fiyat
    500 300 100
    600 400 150
    700 550 200

    Kullanıcınıcımızın girmiş olduğu en=540 boy=330 olduğunda bunlara en yakın olan kayıtlar en=500 boy=300 satırından fiyat bilgisi çekilip kullanıcıya 100 ytl olarak göstermem lazım.Bir iki deneme yaptım (where en<540 nd boy<330 limit 1 ) gibi ama tam net bir sorgu oluşturamadım.Bu anlattıklarımı yapabilmem için nasıl bir sorgu yazmam lazım?
    -----------------------------

    WHERE kullanarak sınırlandıracaksın aramayı

    Sonra da Aralıktaki en ucuzu için ORDER BY kullanacaksın

    Az çok olayı içinde ASCENDANT DESCENDANT kullanacaksın. 

     

    Ama Rene nin dediği gibi fazladan çekip,

    Sonra dil ile de sınırlandırabilirsin.

    Nasıl olsa serverda çalışıyor ve bu sorgu hep yapılacak.

    Yani DataTable larını hep dolu tutabilirsin... 

     

     

    Tekrar okuyunca anladım derdini.

    Eğer öyle birşey yoksa,

    Şöyle bir mantık izliyceksin

    if( DT.Rows.Count == 0 )

    İçine de yeni bir SQL sorgusu, aralık değiştirirerek.

     

    Araya bir de, 'Aradığınız ürünler bulunamadı, ama elimizde bu var' gibi bir mesaj koyabilirsin. 

Toplam Hit: 2446 Toplam Mesaj: 3