PDA

View Full Version : سوال: جستجو بر اساس قیمت بین چند تا ستون



barman_kian
چهارشنبه 02 مرداد 1398, 15:55 عصر
سلام دوستان من یک برنامه سی شارپی دارم با پایگاه داده آنلاین mysql
یک جدول توی پایگاه داده دارم به شکل زیر :
150513

خب در واقع این یک جدول هست برای قیمت واحد های برج های مختلف :
ستون project_id در واقع آیدی هر برج هست
و min_10 در واقع "حداقل" قیمت یک سوئیت بدون اتاق خواب هست
و max_10 در واقع "حداکثر" قیمت یک سوئیت بدون اتاق خواب هست
و min_11 در واقع "حداقل" قیمت یک واحد هست با یک سالن و یک اتاق خواب
و max_11 در واقع "حداکثر" قیمت یک واحد هست با یک سالن و یک اتاق خواب
و الی آخر ...
خب من میام برای هر برج شروع می کنم قیمت ها رو اینطوری درج می کنم : هر برج واحد های مختلفی داره مثلا یک خوابه ، دو خوابه ، سه خوابه و ...
و برای هر کدوم از واحد ها یک حداقل قیمت وجود داره و یک حداکثر قیمت (متغیر هست بر اساس متراژ و چیزهای دیگه ...)

حالا من میخوام چکار کنم
میخوام وقتی کارشناس ما میخواد به مشتری پیشنهاد بده ازش میزان بودجه رو بپرسه و وارد برنامه کنه
حالا من باید کوئری بزنم و هر چی برج هست که قیمت هر کدوم از واحدهاش مساوی یا پائینتر از اون میزان بودجه هست رو نمایش بدم
چند تا مساله دارم که نمی تونم بین شون مدیریت کنم :
1- اول اینکه اگر دقت کرده باشید توی این جدول من فقط آیدی برج ها رو ذخیره کردم پس باید اول این مساله رو دقت کنم که این جدول رو با جدولی که اسم و دیگر اطلاعات برج ها داخلش موجوده رو جوین کنم
2- دوم این که باید مبلغی رو که کارشناس وارد می کنه رو بین تمام ستون ها بگردم یعنی توی تمام قیمت واحدها جستجو انجام بشه
3- سوم اینکه چون میخوام قیمت های پائینتر از اون مبلغی که وارد شده رو بیارم باید یه شرط بگذارم که ستون های که 0 صفر هستند رو نگرده
4 - چهارم هم اینکه وقتی بین تمام ستون ها جستجو انجام میشه بنابراین به عنوان خروجی ما به ازای هر کدام از واحد ها یک بار اون برج رو برمیگردونه و نشون میده پس باید از group by استفاده کنم

حالا ترکیب همه این ها و درست انجام دادنشون بسیار سخته هر چقدر سعی کردم انجامش بدم به در بسته خوردم
ممنون میشم اساتید عزیز راهنمایی بفرمایید

متشکرم

mmbguide
یک شنبه 06 مرداد 1398, 17:32 عصر
سلام

1- خب باید حتما جوین کنید. اما مشکلتون با جوین چی هستش؟
2- در شرط کافیه که ترکیب AND و OR یا BETWEEN و OR رو استفاده کنید
3- در شرط مقادیر را مدیریت کنید
4- فکر کنم نیاز به Group By نداشته باشی. در یک برج ممکنه قیمت واحد طبقه اول با طبقه 20 متفاوت باشه ولی در Group کردن شما میخوایید فقط برج رو نمایش بدید؟ البته شما میتونید در مرحله 1 و در زمان Join کردن ستونی را اضافه کنید که نام برج هم کنار مشخصات واحد نمایش داده بشه.