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

جمع حقلين من جدولين مختلفين

مغلق
بدأه shojon في 15 أغسطس 2006 · 7 رد · 3,553 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

اريد ان اجمع حقلين من جدولين مختلفين او عدة حقول من جداول مختلفه في حقل واحد؟؟ كيف يمكن عمله بااستعلام هل هناك داله غير sum لانها فقط تجمع حقل واحد ؟؟؟

للتوضيح..مثلا عندي جدول الموظفين فيه حقل الراتب وجدول الفواتير فيه حقل مبلغ الفاتوره اريد ان اجمع الرواتب ومبالغ الفواتير في حقل واحد كصادرات...اريد أي فكره لحله او مثال ولو كان بكود sql وجزاكم الله خيرا

:unsure: :unsure:

#2

الحل بسيط

في الاستعلام اجمعي الحقلين ثم اعمل sum لهم

SELECT tb.Name, Sum([Invoice]+[Salary]) AS Exp
FROM tb
GROUP BY tb.Name;

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

#3

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

اسفه........ هذا المرفق

اسفه...هذا الملف

db4.rar

#4

بارك الله فيك اخي الكريم اسماعيل

اختي الفاضلة شجون

بالتأكيد سيكون لديك نتائج خاطئة بهذه الطريقة لانه يوجد لديك سجل واحد في حقل amount في جدول الفاتوره bill مقابل ثلاثة حقول salary في جدول employee فعند الجمع بهذه الطريقة في الاستعلام سيقوم الاستعلام بتعبئة الحقلين الفارغين amount كل حقل يكون 5 اي سينتج لديك المجموع 15 لحقل amount ولهذا عند الجمع سيتم جمع مجموع االـ salary مضافا اليه مجموع الـ amount وهذا خطأ لانك سوف تحصيلن على ما مجموعه 322 بينما الصحيح ان تحصلين على 312 وهي مجموع الراتب 307 + 5 فقط

لذا اسألك ما هي العلاقة بين حقل الـ salary وحقل amount في الجدولين طبعا لا يوجد علاقة

قومي بعمل العلاقات بشكل صحيح وستظهر لك النتائج صحيحه

اختك

زهره

#5

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

#6

السلام عليكم....

اشكرك يااستاذه زهره وما اريده مثل ماقلتي بان يصبح المجموع 312 لاني اريد ان احسب مبلغ الصادرات او المصروفات(الرواتب+الفواتير) .. أي يجمع لي ولوكان عدد السجلات مختلفه هل هناك طريقة لذلك.. وانا وجدت طريقه بعد مااستفدت منكم بان اعمل استعلام يجمع لي حقل salary في جدول employee واستعلام اخر يجمع amount في bill ..ثم اجمع الاستعلامين في استعلام واحد لكن هذه الطريقه تكون طويله مع جداول كثيره مثل مشروعي حيث يجب ان اضع لكل جدول استعلام ؟؟؟ وجزاكم الله خيرا

#7

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

الأخت الكريمة shojon

بعد اذن استاذتنا الجليله زهــرة المنتدى , مرفق ملف به مثال على ما تطلبين (خمسة جداول بكل منها حقل لتخزين مبلغ ما ثم تجميع جميع المبالغ فى جميع الجداول دفعة واحدة).

وهذا الحل يصلح ان شاء الله مهما يكن الهدف من الجداول ومهما كانت العلاقات بين الجداول ومهما كانت عدد الجداول نفسها.

فعليا اختى الكريمة مرفق حلين لك ان تختارى ما تشائين منهما

الحل الاول Sol1

يتكون من استعلامين الاول استعلام توحيد Union Query باسم Sol1_Union_Query لعمل تحديد لجميع السجلات (للحقل الهدف) فى جميع الجداول محل الدراسة.

وعلى مثالنا يكون

SELECT [num1] FROM [TableA]
UNION ALL SELECT [num2] FROM [TableB]
UNION ALL SELECT [num3] FROM [TableC]
UNION ALL SELECT [num4] FROM [TableD]
UNION ALL SELECT [num5] FROM [TableE];

والاستعلام الثانى استعلام تجميعى عادى باسم Sol1_Sum_Union_Query لتجميع جميع المبالغ بعد دمجها فى الاستعلام السابق.

وعلى مثالنا يكون

SELECT Sum(Sol1_Union_Query.num1) AS SumOfnum1 FROM Sol1_Union_Query;

الحل الثانى Sol2

فهو عبارة عن استعلام واحد فقط باسم Sol2_Direct_Final_Sum وهو يقوم بنفس عمل الاستعلامين السابقين

وفى مثالنا يكون

SELECT Sum(num1) AS [Sum] FROM (Select num1 From [TableA]
UNION ALL SELECT [num2] FROM [TableB]
UNION ALL SELECT [num3] FROM [TableC]
UNION ALL SELECT [num4] FROM [TableD]
UNION ALL SELECT [num5] FROM [TableE]) AS Final_Union;

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

والله الموفق ,,,

db4.rar

أشهد أن لا إله إلا الله وأشهد أن محمدا رسول الله

bnr025.gif

مـــوقـــعـــى

#8

اعتذر لكم عن تاخيري لظروفي.....لكن الشكر لله ثم لكم ان فرجتوا كربتي

وقد طبقت الحل الاول ولله الحمد تنفذ معي بدقائق

حتى الحل الثاني سهل ....... فشكرا لك استاذعماد وشكرا لاعضاء هذا المنتدى الذي افادنا

هذا الموضوع مغلق.

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