• 0
يوفي VIP

سؤال في جملة استعلام بين تاريخين

سؤال

السلام عليكم ورحمة الله .

اخواني الكريم .. لدي مشروع لتصميم حجوزات لفندق .. وهناك جدول يخزن تاريخ الدخول والخروج لكل عميل كما في المرفق ..

السؤال .. كيف تكون جملة الاستعلام إذا اردنا البحث عن ( الغرف المتاحة ) التي لم يتم حجزها .. على سبيل المثال ..

لدينا بعض السجلات المخزنة في قاعدة البيانات كمافي المرفق .. فمثلاً اذا ادخل المستخدم تاريخ ( 5-1- 2011 ) إلى تاريخ ( 14-1-2011) .. فلن يتم اظهار الغرفة ، لأنها محجوزهـ من الفترة ( 1-1-2011 ) إلى (12-1-2011) وهكذا ..

post-62145-079615200 1293864785_thumb.jp

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

6 إجابة على هذا السؤال .

  • 0

اخي ممكن توضح الجداول المستخدمة

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

في البداية لم أخطط لوضع الجداول حتى لا يراها الأخوان شبه معقدة .. ولكن لك ما اردت أخي الكريم هذه كل الجداول المرتبطه بهذه العملية ..

جدول Accom_des والذي يحتوي على جميع أسماء الغرف او الفنادق ..

جدول Guset والذي من خلاله يسجل الأعضاء بياناتهم الشخصية .

جدول Transection والذي من خلاله يسجل يتم تسجيل بيانات الحجز ..(many to many relation with table accom_des )

جدول booking_date من خلاله يتم تسجيل تواريخ الحجز ..

المطلوب ببساطة :: العضو سوف يسجل تاريخ ونهاية الحجز الذي يريدهـ للبحث عن فندق متاح ، كيف لي بأن اجد اضع جملة استعلام تمكنني من معرفة هل هذا الفندق في هذه الفترة محجوز ام لا ؟؟

وفقكم الله جميعاً ،،

post-62145-094856200 1294019582_thumb.jp

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

بص يا سيدي خليني أشرحلك الموضوع ببساطة بس حابب أقولك نصيحة واحد كان قالهالي مرة أول مشوار حياتي البرمجية

لما تبقى عايز تكتب algorithm سيب الكود والشاشة وامسك قلم وورقة وخطط انت عايز ايه وازاي ممكن تعمل كده بس

فكر logic يعني.

طيب نرجع لموضوعنا في حالتك ديه انت محتاج تقول للراجل اللي بيعمل بحث في أوضة فاضية في القترة ديه ولا لأ تمام ؟

هتقولي تمام

طيب جميل اعتبرني أنا الراجل اللي بيسألك وانت مثلا موظف الاستقبال هتعمل ايه لو مفيش برنامج

هتفتح الدفتر وتدور مثلا على أوضة فاضية بين التاريخين دول 1-1-2010 & 15-1-2010

على أساس إن ده التاريخ اللي أنا عايز أحجز فيه

طيب تعالى نترجم الكلام ده بقى، هنقول ايه ؟

هاتلي كل الأوض اللي مش موجوده في الصفحات بتاعة التواريخ من أول 1-1-2010 لحد 15-1-2010

تمام لحد كده، هتقولي الكلام ده جميل بس أنا أعرفهم منين أنا قدامي الأوض اللي محجوزة اللي مش محجوز أعرفة منين

أقولك جميل يبقى التفكير محتاج يتظبط شوية ويتعدل

أقول ايه المعطيات؟

1 - كل الأوض

2- الأوض اللي محجوزة في الفترة ديه

ايه المطلوب ؟

1- الأوض اللي مش محجوزة في الفترة ديه

نجيبها أزاي ؟

كل الأوض - الأوض اللي محجوزة = الأوض اللي مش محجوزة

قربنا اهه

نقولها بطريقة تتفهم بقى

هاتلي كل الأوض بشرط إنها ما تكونش في (هاتلي كل الأوض اللي تاريخ بداية الحجز بتاعها في الفترة ما بين 1-1-2010 & 15-1-2010 أو تاريخ أنتهاء الحجز بتاعها في الفترة ما بين 1-1-2010 & 15-1-2010)

نترجم SQL:


Select * from room_table where room_id not in (select room_id from reserved_rooms where (start_date between 1-1-2010 and 15-1-2010) or (end_date between 1-1-2010 and 15-1-2010) )

أعتقد كده بقت سهلة بإذن الله جرب كده وقولي لو في مشاكل واجهتك

تم تعديل بواسطه SamehZaghloul
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

عظيم جداً استاذ سامح ..

انا بالضبط افعل ماأشرت له في ردكـ .. ولكن بعض الأحيان تنقصني بعض المعلومات كـ ( not in with its conditions) في كودك السابق .. الكود يعمل بامتياز أخي الكريم ..

ولكن هل تتفضل لي بقليل من المساعدة فأنا استخدمت الكود وعمل بشكل ناجح جداً .. ولكن في تصميم الموقع هناك خيار ( فقط أعرض المتاح ) والكود السابق يعمل معه بنجاج ..

ولكن لو أرد عرض جميع الفنادق ( المتاح وغير المتاح ) وأطبع كلمة ( متاح ) أمام الفندق المتاح و ( غير متاح ) أمام الفندق الغير متاح .. هناك حقل اسمه ( availability ) يحتوي على قيمة تلقائية وهي 1 وتعني متاح ، 0 بمعني غير متاح ( في حال كانت الغرفة في صيانه او ما شابه ذلك ).. وهذا الشرط بامكاني تحقيقه بسهوله في sql statement وهي وضع where availabilty=1 هنا اطبع متاح والعكس كذلك ..

ولكن اذا اردت عمل ذلك بالحقول الأخرى وهي مقارنه التاريخ السابق فكيف لي بعمل ذلك ؟؟ فكرت باستخدام Alias وهي الاسم المستعار بحيث اضع رقم (Alias=1 ) مثلاً في حال تحقق الشرط السابق ومن ثم اعمل اذا Alias=1 اطبع متاح والعكس !! ولكن لم تظهر النتائج بالشكل المطلوب !!

وفقك الله لكل خير ،،

تم تعديل بواسطه يوفي VIP
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

أخي الحقل reg_date و check in و check out ماوظيفة كل واحد منهم؟

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

reg_date : تاريخ تقديم الطلب ( او تاريخ تسجيل الطلب في قاعدة البيانات لأني احتاجه في حسابات دفع العربون وامور أخرى )

check in : تاريخ بداية الحجز للغرفة

check out : تاريخ نهاية الحجز للغرفة.

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .