En iyi yanıtlayıcılar
Farklı Kurlar için Değerine göre sıralama

Soru
-
Merhaba;
Farklı döviz tipleri barındıran bir site için fiyata göre sıralama yapmam gerekiyor. Fakat kur tipi ne olursa olsun tl bazında değerine göre sıralanması gerekmekte. Ben veritabanında iki veri tipi kullandım bunun için;
Property_Fiyat decimal(18, 2)
Property_Fiyat_Kur varchar(5)Ve bir adet de daha önceden hazırlamış olduğum günlük dövizlerin tl bazında değerlerini ....txt dosyasına kaydeden bir void um var.
Nasıl bir yol izlemeliyim bir fikir de olsa çok yardımı olur
Teşekkürler
Yanıtlar
-
Merhaba
Veritabanım MSSQL olmakla birlikte alanlar isimlendirmeler hepsi gerçek garip ama gerçek hocam :)
Cihan hocama da önerilerinden ötürü teşekkür etmekle birlikte Çetin hocamın yaklaşımının daha faydalı olduğunu kabul etmem ve kendisine ayrı bir teşekkür etmem gerek sanırım. Çünkü ayrı bir tabloda kur tl karşılıklarını tutma ve çekerken çarparak çekme fikri kendi çapımda bi aydınlatma yaratmış sorunu çözmemle birlikte de ayrı bi keyfe dönüşmüştür.
Aşağıda benzer sorun yaşayan arkadaşlara faydalı olması dileği ile sql sorgumu paylaştım.
select Properties.Property_Id, Properties.Property_Tip, Properties.Property_Durum, Properties.Property_Fiyat, Properties.Property_Fiyat_Kur, Properties.Property_M2, Regions.Region_Ad, Property_Builds.Property_Build_Ad, Property_Pics.Property_Pic_Ad, Property_Pics.Property_Pic_Alt, Property_Contents.Property_Content_Ad, Properties.Property_Fiyat * Property_Exchanges.Property_Fiyat as New_Property_Fiyat from Properties inner join Property_Exchanges as Property_Exchanges on (Properties.Property_Fiyat_Kur = Property_Exchanges.Property_Fiyat_Kur) inner join Property_Contents as Property_Contents on (Properties.Property_Id = Property_Contents.Property_Id) inner join Property_Pics as Property_Pics on (Properties.Property_Id = Property_Pics.Property_Id) inner join Property_Builds as Property_Builds on (Property_Contents.Property_Build_Id = Property_Builds.Property_Build_Id) inner join Regions as Regions on (Properties.Region_Id = Regions.Region_Id) where Property_Pics.Property_Pic_Avatar='true' and Property_Contents.Property_Lang=@Property_Lang and Properties.Property_Aktif=@Property_Aktif order by New_Property_Fiyat asc
Teşekkürler
İyi Günler..
- Yanıt Olarak İşaretleyen Serkan Canseven 4 Ocak 2016 Pazartesi 15:23
Tüm Yanıtlar
-
-
Hocam teşekkürler
IComparable kullandım fiyatın bulunduğu sınıf için fakat ben iki tabloyu birleştirerek çekiodum ilk sorguda bu durumda arraylistden donen tek sınıfı bind ettiğimde adı açıklaması gibi özellikler gelmiyor bununla ilgili bir öneriniz olursa (arraylistde tablo birleştirme felan) çok makbule gecer :)
İyi Günler
-
-
-
-
Veritabaniniz ne bilmiyorum ama kullandiginiz alanlar garip olmus. Property_Fiyat_decimal ne? TL cinsinden tutari mi? Yoksa doviz cinsinden mi? Property_Fiyat_Kur varchar diyor, herhalde dovizin cinsi gibi bir sey tutuyorsun burada.
Sonucta yapmaniz gereken select sirasinda TL'ye cevirip ona gore order by ile almak. Bugunun kuruna gore almak istediginizi ve kurlar diye bir tabloda Property_Fiyat_Kur (PK) ve TL alanlari oldugunu var sayarsak sunun gibi bir sey olurdu:
with fiyatlar (fiyat) as ( select t1.Property_Fiyat * t2.TL from tabloAdi t1 inner join kurlar t2 on t1.Property_Fiyat_Kur = t2.Property_Fiyat_Kur ) select * from fiyatlar order by fiyat
Gercek tablo yapilarina gore uyarlaman yeterli (bu isimler herhalde gercek degil, cok garip isimlendirme olmus).
-
Merhaba
Veritabanım MSSQL olmakla birlikte alanlar isimlendirmeler hepsi gerçek garip ama gerçek hocam :)
Cihan hocama da önerilerinden ötürü teşekkür etmekle birlikte Çetin hocamın yaklaşımının daha faydalı olduğunu kabul etmem ve kendisine ayrı bir teşekkür etmem gerek sanırım. Çünkü ayrı bir tabloda kur tl karşılıklarını tutma ve çekerken çarparak çekme fikri kendi çapımda bi aydınlatma yaratmış sorunu çözmemle birlikte de ayrı bi keyfe dönüşmüştür.
Aşağıda benzer sorun yaşayan arkadaşlara faydalı olması dileği ile sql sorgumu paylaştım.
select Properties.Property_Id, Properties.Property_Tip, Properties.Property_Durum, Properties.Property_Fiyat, Properties.Property_Fiyat_Kur, Properties.Property_M2, Regions.Region_Ad, Property_Builds.Property_Build_Ad, Property_Pics.Property_Pic_Ad, Property_Pics.Property_Pic_Alt, Property_Contents.Property_Content_Ad, Properties.Property_Fiyat * Property_Exchanges.Property_Fiyat as New_Property_Fiyat from Properties inner join Property_Exchanges as Property_Exchanges on (Properties.Property_Fiyat_Kur = Property_Exchanges.Property_Fiyat_Kur) inner join Property_Contents as Property_Contents on (Properties.Property_Id = Property_Contents.Property_Id) inner join Property_Pics as Property_Pics on (Properties.Property_Id = Property_Pics.Property_Id) inner join Property_Builds as Property_Builds on (Property_Contents.Property_Build_Id = Property_Builds.Property_Build_Id) inner join Regions as Regions on (Properties.Region_Id = Regions.Region_Id) where Property_Pics.Property_Pic_Avatar='true' and Property_Contents.Property_Lang=@Property_Lang and Properties.Property_Aktif=@Property_Aktif order by New_Property_Fiyat asc
Teşekkürler
İyi Günler..
- Yanıt Olarak İşaretleyen Serkan Canseven 4 Ocak 2016 Pazartesi 15:23