Javascript Tabs Menu by Deluxe-Tabs.com الاستعلام المدمج
النتائج 1 إلى 20 من 20

الموضوع: الاستعلام المدمج

  1. #1
    تاريخ التسجيل
    Jan 2009
    الإقامة
    Jordan
    المشاركات
    3,299

    افتراضي الاستعلام المدمج

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

    مصطح جديد لم يستخدم من قبل فقد استحدثته من بنات افكاري
    وان كانت الفكرة ليست جديدة الا انه قليل من المبرمجين من يستخدم هذا الاسلوب في بناء الاستعلامات.

    احيانا قد لايكفي استعلام واحد للحصول على نتيجة معينة فنلجا الى بناء تركيبة من عدة استعلامات للوصول الى النتيجة المطلوبة.

    فمثلاً في نظام الفواتير تتكون الفاتورة من جدولين:
    الجدول الاول البيانات الرئيسية الثابتة للفاتورة مثل رقم الفاتورة وتاريخها واسم العميل وربما اسم الموظف الذي قام بتحريرها.
    والجدول الثاني هو جدول محتويات الفاتورة والذي يحتوي على رقم الفاتورة كمفتاح غريب و الصنف والكمية وسعر الوحدة.
    اما القيمة الاجمالية للصنف الواحد فيتم من خلال ضرب الكمية في سعر الوحدة وياتي ذلك من خلال استعلام.
    اما اجمالي الفاتورة فيكون من خلال استعلام يقوم بجمع القيمة الاجمالية للاصناف التي تحتويها الفاتورة.
    وهكذا فاننا نحتاج الى استعلام مبني على جدول المحتويات للحصول على القيمة الاجمالية للصنف الواحد
    واستعلام اخر يقوم بجمع القيم الاجمالية للاصناف للحصول على مجموع الفاتورة.

    كيف ذلك؟

    اولا: نقوم بانشاء جدول بيانات الفواتير الرئيسية BellsTbl والذي يحتوي على الحقول
    - رقم الفاتورة وهو المفتاح الرئيسي للجدول (BellId)
    - اسم العميل (Customer)
    - اسم الموظف(Emp)
    - تاريخ الفاتورة(Bdate)
    ثانيا : نقوم بانشاء جدول المحتويات(Contents) والذي يحتوي على
    - رقم متسلسل للمحتويات(ContId)
    - رقم الفاتورة(BellId)
    - الصنف (Item)
    - الكمية (mount)
    - سعر الوحدة (UPrice)

    الان سنقوم بتصميم استعلام للحصول على السعر الاجمالي للصنف
    مبني على جدول المحتويات (Contents)
    باضافة جميع الحقول وحقل جديد باسم TotalPrice وهو يساوي الكمية (Mount) مضروبة في سعر الوحدة (UPrice) كالتالي:
    كود:
    TotalPrice:[Mount]*[Uprice]
    ثم سنحفظ الاستعلام باسم TotalContents
    وهكذا حصلنا على السعر الاجمالي لكل صنف
    فكيف سنحصل على قيمة الفاتورة

    سننشئ استعلاما جديداً مبني على الاستعلام السابق TotalContents باختيار حقل رقم الفاتورة BellId وحقل السعر الاجمالي للصنف TotalPrice وسنغير اسم حقل السعر الاجمالي الى (قيمة الفاتورة) BellPrice بكتابة العبارة التالية في مكان العبارة TotalPrice
    كود:
    BellPrice:[TotalContents]![TotalPrice]
    ثم سنضيف خاصية التجميع وسنضع تحت حقل السعر الاجمالي خاصية التجميع حسب المجموع Sum

    سنحفظ الاستعلام باسم TotalBellPrice

    الان اصبح لدينا استعلامين

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

    الاستعلام الثاني مبني على الاستعلام الاول
    لذلك علينا دمج الاستعلام الاول في الاستعلام الثاني قبل حذفه
    كالتالي
    افتح الاستعلام الثانيTotalBellPrice بطريقة عرض التصميم
    ثم حول طريقة العرض الى SQL
    ستجد العبارة مكتوبة كالتالي:
    كود:
    SELECT TotalContents.BellId, Sum(TotalContents.TotalPrice) AS BellPrice
    FROM TotalContents
    GROUP BY TotalContents.BellId
    ORDER BY TotalContents.BellId;
    ركز على العبارة المعلمة بالاحمر FROM TotalContents
    سنعدل عليها بوضع قوسين ثم كلمة As بين كلمة From وكلمة TotalContents
    كالتالي
    From () As TotalContents
    الان سنبقي الاستعلام مفتوحاً
    وسنفتح الاستعلام الاول TotalContents بطريقة عرض التصميم ثم سنحول طريقة العرض الى جملة SQL
    سننسخ جملة الSQL وسنلصقها بين القوسين الذين اضفناهما في الاستعلام السابق
    وسنلاحظ في نهاية الجملة التي الصقناها الفاصلة المنقوطة ; سنقوم بالغائها فتصبح العبارة كاملة كالتالي
    كود:
    SELECT TotalContents.BellId, Sum(TotalContents.TotalPrice) AS TotalBellPrice
    FROM (SELECT Contents.ItemId, Contents.BellId, Contents.Item, Contents.Mount, Contents.UnitPrice, [Mount]*[UnitPrice] AS TotalPrice
    FROM Contents
    )  AS TotalContents
    GROUP BY TotalContents.BellId
    ORDER BY TotalContents.BellId;
    الان اغلق الاستعلامين واحفظهما
    احذف الاستعلام الاول TotalContents
    افتح الاستعلام الثاني بطريقة عرض التصميم ستلاحظ وجود نافذة الاستعلام المحذوف TotalContents وكانه موجود
    افتح الاستعلام بطريقة العرض العادية ولاحظ البيانات لم تتغير


    تمرين

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


    نرجو ان يكون درسا مفيدا
    وبالتوفيق
    الملفات المرفقة الملفات المرفقة
    التعديل الأخير تم بواسطة ناصر المصاروة ; 2010-09-22 الساعة 02:24 AM

  2. #2

    افتراضي

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

  3. افتراضي

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

  4. افتراضي

    والله العظيم الكلام ده جامد
    بارك الله فيك وجزاك عنا كل خير

  5. #5
    تاريخ التسجيل
    Jan 2009
    الإقامة
    Jordan
    المشاركات
    3,299

    افتراضي

    اشكركم جميعا على المجاملة اللطيفة

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

    سنفتح الاستعلام الاخير TotalBellPrice بطريقة عرض التصميم
    وسنضيف له الجدول BellsTbl ثم سنربط الجدول مع الاستعلام الداخلي بواسطة الحقل BellID من الجدول BellsTbl مع الحقل المسمى بنفس الاسم من الاستعلام المدمج
    eم سنضيف الحقل BDate (تاريخ الفاتورة) من الجدول BellsTbl ونلغي الحقل BellId والذي مصدره الاستعلام المدمج. لتصبح جملة الاستعلام كالتالي:
    كود:
    SELECT Sum(TotalContents.TotalPrice) AS TotalBellPrice, BellTbl.BDate
    FROM(SELECT Contents.ItemId, Contents.BellId, Contents.Item, 
    Contents.Mount, Contents.UnitPrice, [Mount]*[UnitPrice] AS TotalPrice 
    FROM Contents) AS TotalContents INNER JOIN BellTbl ON TotalContents.BellId = BellTbl.BellID
    GROUP BY BellTbl.BDate;
    اذا قمت بتشغيل الاستعلام ستلاحظ انه يعود باجمالي المبيعات اليومية
    احفظ الاستعلام.

    للحصول على المبيعات الشهرية
    خذ نسخة عن الاستعلام السابق والصقها باسم جديد وليكن MonthelySales
    افتح الاستعلام الجديد بطريقة التصميم واستبدل الحقل BDate بالعبارة
    كود:
     Bmonth: Format([BDate];"mm/yyyy")
    الان شغل الاستعلام الجديد وانظر النتيجة...
    التعديل الأخير تم بواسطة ناصر المصاروة ; 2010-10-18 الساعة 08:43 AM

  6. افتراضي

    جزاك الله الف خير على شرحك الجميل
    في ميزان حسانتك وحفظك الله

  7. افتراضي

    جزاك الله خيراً
    مشكور على الشرح

  8. افتراضي

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

  9. #9
    تاريخ التسجيل
    Dec 2010
    الإقامة
    لبنان
    المشاركات
    539

    افتراضي

    مشكور على الشرح يا استاذ ناصر

  10. #10
    تاريخ التسجيل
    Dec 2010
    الإقامة
    لبنان
    المشاركات
    539

    افتراضي

    مشكور اخ ناصر على هذا الشرح الجميل والسهل والانيق
    لقد قمت بتجربة هذا النوع من الاستعلام وكان الامر مشوقاً
    لتمنى ان تعطينا المزيد من الدروس
    وشكراً جزيلاً لك

  11. #11
    تاريخ التسجيل
    Dec 2010
    الإقامة
    لبنان
    المشاركات
    539

    افتراضي

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

  12. #12
    تاريخ التسجيل
    Jan 2009
    الإقامة
    Jordan
    المشاركات
    3,299

    افتراضي

    بكل سهولة اجعل الاستعلام مصدرا لبيانات النموذج
    ويمكن ان يكون بنموذج منفرد او نموذج فرعي حسب الحاجة

  13. افتراضي

    شـكـراً لـك

  14. افتراضي

    بارك الله فيك أستاذ ناصر .. زادك الله من فضله
    التوقيع
    اللهم لك الحمد كما ينبغى لجلال وجهك وعظيم سلطانك .. لا إله إلا أنت سبحانك أنى كنت من الظالمين

  15. افتراضي

    بارك الله فيك أخي العزيز ناصر موضوع جميل وشيق وفقك الله

  16. افتراضي

    شرح جميل ورائع ......استاذ ناصر
    مبدع دائما
    اخي العزيز عندي سؤال : اذا كنت استخدم دفتر الفواتير وقيمة الفاتورة اسجلها بدفتر اليومية ودفتر الديون اذا كان المبيع بالأجل واذا كان كاش تسجل بدفتر اليومية
    وكذلك اسجل بدفتر اليومية المصاريف (اجور عمال - كهرباء - مصاريف عامة ......) و ثمن البضاعة
    فهل تسمح وترشدني الى طريقة تنفيذ ذلك بالأكسس ولكم الشكر اخي الكريم
    التعديل الأخير تم بواسطة كينغ مان ; 2011-04-27 الساعة 12:37 AM
    التوقيع
    سبحان الله وبحمده سبحان الله العظيم

  17. افتراضي

    السلام عليكم
    اخي الكريم ... ارجوا الإجابة ولكم جزيل الشكر
    التوقيع
    سبحان الله وبحمده سبحان الله العظيم

  18. #18
    تاريخ التسجيل
    Mar 2012
    المشاركات
    889

    افتراضي

    دائما وابدا مبدع ورائد في الطرح والشرح
    وفقك الله وجزاك الله كل الخير والتوفيق

  19. افتراضي رد: الاستعلام المدمج

    شكراً جزيلاً على هذا الشرح وهذا الابداع .... جعله الله في ميزان حسناتك ,,,,,,,,,,,,,

  20. #20
    تاريخ التسجيل
    Jan 2009
    الإقامة
    Jordan
    المشاركات
    3,299

    افتراضي رد: الاستعلام المدمج

    اقتباس المشاركة الأصلية كتبت بواسطة كينغ مان مشاهدة المشاركة
    اخي العزيز عندي سؤال : اذا كنت استخدم دفتر الفواتير وقيمة الفاتورة اسجلها بدفتر اليومية ودفتر الديون اذا كان المبيع بالأجل واذا كان كاش تسجل بدفتر اليومية
    وكذلك اسجل بدفتر اليومية المصاريف (اجور عمال - كهرباء - مصاريف عامة ......) و ثمن البضاعة
    فهل تسمح وترشدني الى طريقة تنفيذ ذلك بالأكسس ولكم الشكر اخي الكريم
    سؤالك لايمت للموضوع بصلة

المواضيع المتشابهه

  1. الاستعلام التوحيدي
    بواسطة ناصر المصاروة في المنتدى الدروس
    ردود: 18
    آخر مشاركة: 2011-04-25, 10:38 PM
  2. كيف اعمل بحث في الاستعلام
    بواسطة split في المنتدى الاستعلامات ولغة SQL
    ردود: 11
    آخر مشاركة: 2011-02-26, 10:10 AM
  3. استعلام/ استشارة فى الاستعلام
    بواسطة عبدالله حبيبى في المنتدى الاستعلامات ولغة SQL
    ردود: 7
    آخر مشاركة: 2010-04-27, 11:26 PM
  4. نموذج/ فتح مربع الحوار نفس المجلد المحفوظ به البرنامج
    بواسطة الشرقي2008 في المنتدى آكسس العام
    ردود: 4
    آخر مشاركة: 2009-10-17, 04:57 PM
  5. ردود: 0
    آخر مشاركة: 2008-06-23, 02:14 AM

مواقع النشر (المفضلة)

مواقع النشر (المفضلة)

ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •  
unique hits