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

حساب الاستهلاك لكل يوم

بدأه samy_tech في 9 يونيو 2012 · 12 رد · 860 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

سال بسيط

لدي جدول فيه التاريخ و العداد اريد حساب الاستهلاك لكل يوم

ارجو المساعد

compteur.rar

#2

اخي الفاضل : سامي

تفضل ملفك بعد التعديل

post-15367-092578400 1339217365_thumb.gi

za-compteur-UP.rar

بالتوفيق

المرفقات
P1.gif
1
#3

السلام عليكم

الاخت زهرة لك مشاركة سابقة في هذا الموضوع وكان الكود المستعمل تقريبا يشبه هذا

PreviousReading: DLookUp("[compteur]";"depot";"[N°]=" & [N°]-1)

والان استعملت تعبير ثاني لم افهمه وخصوصا الرمز R2 هل يعني سطر ام حقل ام ماذا بالضبط ارجو شرح الكود الاتي:

PreviousReading: (SELECT MAX(R2.compteur) FROM depot As R2 WHERE R2.Date < Depot.Date )

وفقك الله .

#4
سلامنا لكم كتب:

السلام عليكم

الاخت زهرة لك مشاركة سابقة في هذا الموضوع وكان الكود المستعمل تقريبا يشبه هذا

PreviousReading: DLookUp("[compteur]";"depot";"[N°]=" & [N°]-1)

والان استعملت تعبير ثاني لم افهمه وخصوصا الرمز R2 هل يعني سطر ام حقل ام ماذا بالضبط ارجو شرح الكود الاتي:

PreviousReading: (SELECT MAX(R2.compteur) FROM depot As R2 WHERE R2.Date < Depot.Date )

وفقك الله .

اخي الفاضل : سلامنا لكم

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

كلا التعبيرين يؤدون نفس الغرض ولا يوجد بينهما فرق من حيث النتائج لذا حاول ان تركز معي قليلا حتى تكتسب بعض الخبره

التعبير الأول :

جميع الحقول الموجوده به مأخوذه من نفس الجدول ولم نأتي بشيء خارجي ( اعتقد ان التعبير سهل للغاية فليس به اي شيء خارج عن المألوف )

التعبير الثاني :

هنا يجب ان تركز جيدا لأن هذا التعبير جديد عليك

هذا التعبير نسميه استعلام فرعي !!!!

ما هو المقصود من الإستعلام الفرعي ؟؟؟

المقصود به بارك الله بك عندما لا نستطيع استخراج القيم بطريقة مباشره من الإستعلام الرئيسي نلجأ الى الإستعلام الفرعي

كيف نبني الإستعلام الفرعي ؟؟؟

يتم بناء الإستعلام الفرعي بناء على معيار واحد فقط نحدده ( احفظ هذه المعلومة - معيار واحد فقط ) بحيث نقوم بعمل التالي

1. نقوم بإنشاء استعلام جديد مبني على الجدول الأساسي

2. نأخذ الحقل المطلوب مقارنته مع الحقل الموجود في الإستعلام الرئيسي ( هنا اخذنا حقل compteur ) واخدنا حقل المعيار وهو Date

3. الآن موجود لدينا فقط حقلين وهما compteur و Date في الإستعلام الجديد

4. في حقل compteur نريد استخراج اكبر قيمة وطبعا سيكون بواسطة دالة MAX ( سهلة ولا يوجد بها مشكله )

5. الآن لو استعرضنا الإستعلام سيقوم بإظهار قيمة واحده فقط وهي اكبر قيمة في حقل compteur مع حقل التاريخ الخاص بها

6. اذا كل عملنا هذا هو متمحور حول هذه القيمة مع تاريخها وطبعا لا نستطيع عمله في الإستعلام الأساسي لأننا لن تستفيد شيء ابدا ولهذا نقوم بهذا العمل في استعلام جديد ( استعلام فرعي )

7. الآن بقيت خطوة واحدة وهامة جدا وهي نقوم بتغيير اسم الجدول من خلال الضغط بالماوس الأيمن على الجدول الموجدول في الإستعلام الجديد ونختار خصائص ثم في خانة ( اسم مستعار ) نضع الإسم الذي نريد مثلا R2

8. بعد تغيير اسم الجدول سنلاحظ ان اسم الجدول تغير من اسمه القديم Depot الى الإسم الجديد R2 في الإستعلام نفسه اسفل الحقول المختاره

9. الآن نضع في معيار التاريخ R2.Date < Depot.Date ( لاحظ معي كان اسم الجدول السابق قبل التغيير هو Depot ثم غيرناه الى R2 لكي ينظر له الإستعلام الأساسي على ان الإستعلام الفرعي مختلف تماما وبجدول مختلف تماما عن الجدول الأساسي مع العلم بأنه هو نفسه ولكن غيرنا الإسم فقط لا غير )

9. الآن كل ما علينا هو عرض الإستعلام في عرض SQL ونسخ عبارة SQL الإستعلام ومن ثم اخذها ووضعها في الإستعلام الأساسي لتصبح مثلا

SELECT MAX(R2.compteur) FROM depot As R2 WHERE R2.Date < Depot.Date

10. الآن تتم المقارنة بين القيم في الإستعلام الأساسي و الإستعلام الفرعي لتظهر لنا الناتج ثم نأخذ الناتج ونعمل به مانريد كما في الحل الموجود في المثال

طبعا انت تتساءل لماذا كل هذه الغلبة في هذه الطريقة مع ان التعبير الأول اسهل وابسط ولا يوجد به كل هذه الخطوات !!!

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

اتمنى انني القيت بعض الضوء مع هذا الشرح المبسط مع ان كل هذه الخطوات لا تستغرق منك اقل من دقيقة واحده فقط

بالتوفيق

1
#5

السلام عليكم

اختي واستاذتنا كم ترددت في الرد ولاحياء في العلم

تغلبت في تطبيق الخطوات وبما انها طريقة جديدة علينا

افضل لو تطبيقيها على فديو مصور وتصوير الفديو اقل وقتا من كتابة الخطوات

واكثر فهما واسرع

وفقك الله

#6
zahrah كتب:

اخي الفاضل : سامي

تفضل ملفك بعد التعديل

post-15367-092578400 1339217365_thumb.gi

za-compteur-UP.rar

بالتوفيق

يعطيك الف صحة و عافية

#7

بارك الله فيك أستاذتنا (النجيبة) زهرة .. زادك الله علماً وبركة.

اللهم لك الحمد كما ينبغى لجلال وجهك وعظيم سلطانك .. لا إله إلا أنت سبحانك أنى كنت من الظالمين

#8
samy_tech كتب:

سال بسيط

لدي جدول فيه التاريخ و العداد اريد حساب الاستهلاك لكل يوم

ارجو المساعد

لكن من الافضل التكون هاكذا كيف يمكن ان تصبح هاكذا و شكرا

post-263271-099405900 1339307252_thumb.j

المرفقات
Sans titre3.JPG
#9
samy_tech كتب:

لكن من الافضل التكون هاكذا كيف يمكن ان تصبح هاكذا و شكرا

تفضل اخي الكريم

الملف بعد التعديل بناء على طلبك

post-15367-009427000 1339310218_thumb.gi

za-compteur-UP2.rar

بالتوفيق

المرفقات
SA1.gif

تم تعديل هذه المشاركة بواسطة zahrah في 10 يونيو 2012 في 09:38

#10
zahrah كتب:

تفضل اخي الكريم

الملف بعد التعديل بناء على طلبك

post-15367-009427000 1339310218_thumb.gi

za-compteur-UP2.rar

بالتوفيق

شكرا لكن اريد الاعتماد على التاريخ و الاستغناء على N° لو ممكن الطريقة و الف شكر

za-compteur-UP3.rar

#12

السلام عليكم

اخواني المشرفين والاعضاء

هل ممكن احد يوضح كيف تمت الاستعلامات

الفرعية في هذا المثال للاخت زهرة

واذا ممكن الشرح بالصور او الفديو

وانا لم اعرف كيف اظهر دالة max كحقل جديد؟

وشكرا للجميع

#13
سلامنا لكم كتب:

السلام عليكم

اخواني المشرفين والاعضاء

هل ممكن احد يوضح كيف تمت الاستعلامات

الفرعية في هذا المثال للاخت زهرة

واذا ممكن الشرح بالصور او الفديو

وانا لم اعرف كيف اظهر دالة max كحقل جديد؟

وشكرا للجميع

اخي الفاضل : سلامنا لكم

هل تعتقد ان موضوع الإستعلام الفرعي صعب للغايه

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

حتى ابسط لك الموضوع الى اقل درجة ممكنه

هل تستطيع انشاء استعلام عادي ؟؟

بكل تأكيد تستطيع عمل ذلك ولا يوجد لديك اي مشكلة

بحيث انك تأخذ اي جدول في قاعدة البيانات وتقوم بإنشاء استعلام مبني على هذا الجدول ( الأمر سهل وبسيط للغاية )

اذن اين تكمن مشكلتك !!!!

ستأتي الآن وتقول مشكلتي في الإستعلام الفرعي !!!

وانا اقول لك ليس هناك مشكله .....

والسبب انك لم تفتح مخك معي في الشرح الذي شرحته لك سابقا

حسنا لا يوجد مشكله ...

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

الآن نريد عمل فلتره او استخراج بيانات من هذا الإستعلام فما هي الطريقة ؟؟؟

بالطبع لا يوجد لنا سوى طريقتين :

الطريقة الأولى بعمل المعايير في الإستعلام

والطريقة الثانية بإستخدام استعلام فرعي

طبعا الطريقة الأولى سهلة ولا تحتاج الى شرح

اما الطريقة الثانية فهي بكتابة عبارة جملة استعلام داخل الإستعلام الأساسي

هذه العبارة ( جملة الإستعلام ) والمحشوره في الإستعلام الرئيسي نسميها استعلام فرعي

اذا الإستعلام الفرعي ما هو إلا عبارة عن جملة استعلام تم اضافتها للإستعلام الرئيسي

كيف تتم اضافة هذه الجملة ؟

حسنا دعنا الآن من الإستعلام الرئيسي

وسوف نقوم بعمل استعلام اخر جديد كليا ولكنه مبني على الجدول الذي به الإستعلام الرئيسي وفي هذه الحالة سنأخذ فقط في الإستعلام الجديد حقل او حقلين فقط

بالطبع انت ستسأل ما هي هذه الحقول التي سنأخذها ..

والإجابة على هذا السؤال هو انت من يحدد هذه الحقول وما هي المعلومات التي تريد استخراجها من الحقول المضافه

على سبيل المثال لو كان لدينا في الجدول حقل تاريخ ونريد في الإستعلام الجديد ان نظهر اكبر تاريخ في الإستعلام فما هي الدالة التي تستعدنا في ذلك

بكل تأكيد هي دالة MAX اذا سوف نستخدمها مع حقل التاريخ في استعلامنا الجديد وسيكون شكل جملة SQL بهذه الطريقة

SELECT MAX([Date]) AS R1 FROM Table1

الآن لو اخذنا جملة الإستعلام ووضعناها في حقل جديد في استعلامنا الرئيسي بهذه الطريقة

MyNewFiled:(SELECT MAX([Date]) FROM Table1)

هنا نسمى هذه الجملة استعلام فرعي

ارجو ان الصورة اتضحت الآن

لمزيد من المعلومات انظر هنا

استعلامات SQL الفرعية

http://office.microsoft.com/ar-sa/access-help/HA001231513.aspx

تداخل استعلام ضمن استعلام آخر أو في تعبير باستخدام استعلام فرعي

http://office.microsoft.com/ar-sa/access-help/HA010341863.aspx

SubQueries

http://www.frontpagemagic.com/SQL/SubQueries/index.htm

بالتوفيق

تم تعديل هذه المشاركة بواسطة zahrah في 16 يونيو 2012 في 14:17

1

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