Pluton Mesaj tarihi: Mart 28, 2012 Mesaj tarihi: Mart 28, 2012 Bu aralar çok soru sormaya başladım yine. Birkaç gün boş zamanım var yeni şeyler deniyorum. Şimdi bir taşıma hizmetimiz olsun. 1-3 kişi = 700TL 4-6 kişi = 800TL 7-8 kişi = 1200TL ... price_one, price_two, price_three sütunlarımız var. Bunu pek tabi ki php ile aldırıp bakabiliriz ama sql içinde nasıl yaparız onu merak ediyorum. Şöyle bir yapı kurmaya çalıştım ama çok salakça oldu sanırım. IF $kisi_sayisi > 8 SELECT price as price_three FROM .... ELSE IF $kisi_sayisi > 6 SELECT price as price_two FROM .... ELSE SELECT price as price_one FROM ... şurayı inceledim biraz ama istediğimi yapamadım yinede
reyou Mesaj tarihi: Mart 28, 2012 Mesaj tarihi: Mart 28, 2012 sutunlarin o sekilde olmasi scalibility i azaltir, onlari baska bi table a tasiyip inner join yapmalisin
Pluton Mesaj tarihi: Mart 28, 2012 Konuyu açan Mesaj tarihi: Mart 28, 2012 Her fiyat aralığı için 1 tablo mu açayım ?
reyou Mesaj tarihi: Mart 28, 2012 Mesaj tarihi: Mart 28, 2012 hayir fiyat araligi diye bi tablo olusturucan 1- 300-400 2- 400-500 3- 500-600 diye rowlar eklicen.
4Ever Mesaj tarihi: Mart 28, 2012 Mesaj tarihi: Mart 28, 2012 Yok ters olmuş o :) kişi aralığı olacak fiyat sabit olur. ayrı bir tablo ac. relationId,personalMin,personalMax,price ----------------------------------------- 1,1,3,500 1,4,6,700 ...
reyou Mesaj tarihi: Mart 28, 2012 Mesaj tarihi: Mart 28, 2012 ben 1 step normalize halini verdim, normalize ettikce dibine kadar gidersin ztn sonu yok onun
riglous Mesaj tarihi: Mart 28, 2012 Mesaj tarihi: Mart 28, 2012 Pluton said: Bu aralar çok soru sormaya başladım yine. Birkaç gün boş zamanım var yeni şeyler deniyorum. Şimdi bir taşıma hizmetimiz olsun. 1-3 kişi = 700TL 4-6 kişi = 800TL 7-8 kişi = 1200TL ... price_one, price_two, price_three sütunlarımız var. Bunu pek tabi ki php ile aldırıp bakabiliriz ama sql içinde nasıl yaparız onu merak ediyorum. Şöyle bir yapı kurmaya çalıştım ama çok salakça oldu sanırım. IF $kisi_sayisi > 8 SELECT price as price_three FROM .... ELSE IF $kisi_sayisi > 6 SELECT price as price_two FROM .... ELSE SELECT price as price_one FROM ... şurayı inceledim biraz ama istediğimi yapamadım yinede sütunların adı price_one vs. ise, SELECT price_one as price FROM .... dersin; price as price_one değil. Öncelikle buna dikkat etmen lazım. Bir önceki sql sorunda da aynı sorun vardı. Eğer bu aralıklar sabitse: select case when $kişi_sayısı <= 3 then price_one when $kişi_sayısı <= 6 then price_two when $kisi_sayisi > 6 then price_three else 0 end price from .... diyebilirsin. Eğer 4Ever'ın dediği şekilde yaparsan select price from ..... where 1=1 and $kisi_sayisi between personalmin and personalmax
Öne çıkan mesajlar