الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

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

بدأه يوفي VIP في 1 يناير 2011 · 6 رد · 2,420 مشاهدة · في قواعد بيانات Microsoft SQL Server
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

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

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

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

post-62145-079615200 1293864785_thumb.jp

المرفقات
Untitled.jpg
#2

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

فلسطين .. سوريا ..بورما ......وماذا بعد ؟!

سابقا

medo_programming

موقعي : www.alkhayat-it.com

مواضيع مهمه

-----------------------------------------------:

تعلم كل شىء عن الTriggers

#3

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

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

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

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

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

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

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

post-62145-094856200 1294019582_thumb.jp

المرفقات
01-03-2011 04-46-35.jpg
#4

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

لما تبقى عايز تكتب 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 في 3 يناير 2011 في 09:51

blackangelon8.jpg

أحبك حبين حب الهـــوى*** وحب لأنك أهل لــــــــــــــذاكَ

فأما الذي هو حب الهوى*** فشغلي بذكرك عمن ســـــواكَ

وأما الذي أنت أهل لــــه *** فكشفك لي الحجب حتـى أراكَ

#5

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

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

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

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

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

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

تم تعديل هذه المشاركة بواسطة يوفي VIP في 4 يناير 2011 في 19:48

#6

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

فلسطين .. سوريا ..بورما ......وماذا بعد ؟!

سابقا

medo_programming

موقعي : www.alkhayat-it.com

مواضيع مهمه

-----------------------------------------------:

تعلم كل شىء عن الTriggers

#7

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

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

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

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…