PDA

View Full Version : یک کوئری برای رتبه بندی اتاقهای هتل



Rejnev
سه شنبه 04 اسفند 1388, 12:22 عصر
با سلام خدمت اساتید
فرض کنید یک جدول اتاق داریم و یک جدول پذیرش.
در هنگام پذیرش شماره اتاق در فرم پذیرش ثبت میشود
حالا ما میخوایم اتاقها رو به این صورت رتبه بندی کنیم (حداکثر رتبه 5 و حداقل 0 می باشد)
مثلا
اتاق 101 به تعداد 40 بار پذیرش شده
اتاق 202 به تعداد 16 بار
اتاق 405 تعداد 5 بار و...
در بالا حداکثر عدد پذیرش برابر 40 می باشد پس فرمول به صورت زیر هست
امتیاز = تعداد جاری پذيرش اتاق / ( 40 / 5)
در نتيجه:
امتیاز اتاق 101 برابر 5
اتاق 202 برابر 2
اتاق 405 برابر 0 با این فرمول:


101=40/(40/5)
202=16/(40/5)
405=5/(40/5)


حالا نیاز به همفكري و يا یک کوئری دارم که این رتبه بندی رو بده
با تشکر

s.Jabbari
سه شنبه 04 اسفند 1388, 17:26 عصر
یک فیلد به جدولی اضافه کن که محتواش جواب این فرمولت باشه
بعد با استفاده از rank over رتبه بده

Rejnev
سه شنبه 04 اسفند 1388, 18:25 عصر
یک فیلد به جدولی اضافه کن که محتواش جواب این فرمولت باشه
بعد با استفاده از rank over رتبه بده
با تشكر
قبلا توي جدول اتاقها همين فيلد بود اما حذفش كردم. چون لازم بود براي هر پذيرش بهش مقدار بدم.
جواب رو توي اين فاصله پيدا كردم.
يك view ميسازيم به اين صورت:




create view roomRating as
select room,count(*)[cont] from reception group by room


حالا از اين جدول select ميگيريم:



select room ,cont/(select max(cont)/5.0 from roomRating) from roomRating