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

برجاء المساعدة فى عمل الاستعلام الاتى

مغلقمُجاب
بدأه helskran في 26 نوفمبر 2013 · 18 رد · 731 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

#2

هذا الاستعلام برجاء المساعدة فى معرفة الخطأ

 

 

SELECT Employee.Id, Employee.name, Sum(Collection.Amount) AS SumOfAmount, Sum(Collection.TheValue) AS SumOfTheValue, Sum(Penalty.Amount) AS SumOfAmount1, Sum(E_Dues.Amount) AS SumOfAmount2, Sum(Advances.Amount) AS SumOfAmount3
FROM (((Employee LEFT JOIN Advances ON Employee.Id = Advances.EmpId) LEFT JOIN Collection ON Employee.Id = Collection.EmpId) LEFT JOIN E_Dues ON Employee.Id = E_Dues.EmpId) LEFT JOIN Penalty ON Employee.Id = Penalty.EmpId
GROUP BY Employee.Id, Employee.name;
 

#3

هو الاستعلام صعب لدرجادى

#4

لا توجد قاعدة مرفقة ...

عل كل حال الاستعلام صحيح ... ما هي رسالة الخطأ التي تظهر ... هل قاعدة البيانات أكسس أو سيكوال سيرفر ..؟؟؟

لا إله إلا الله ... محمد رسول الله

لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة

المعرًف القديم : houssam11350_11350

من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر

#5

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

#6

الاستعلام صحيح لكنة يعطى نتائج خاطئة

وارفقت قاعدة البيانات

برجاء الافادة

Lawyer.rar

#7

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

صديقي .. يجب أن تفهم مفهو الــ Join  بشكل صحيح .. إن ربط جدولين عن طريق Left Join  يعني تشكيل جدول جديد فيه سجل من الجدول الأول و ما يقابله من الجدول الثاني (يضع NULL  إذا لم يجد سجل مقابل) ...

كي تعرف ما اقصده , قم بتنفيذ الاستعلام التالي : 

SELECT * FROM (((Employee LEFT JOIN Collection ON Employee.Id=Collection.EmpId) LEFT JOIN Penalty ON Employee.Id=Penalty.EmpId) LEFT JOIN E_Dues ON Employee.Id=E_Dues.EmpId) LEFT JOIN Advances ON Employee.Id=Advances.EmpId;

 ثم طبق المجموع , ستجد أن النتيجة خاطئة بسبب تكرار السجلات بسبب العلاقات كما ذكرت ..

الحل هو استخدام subquery  كالتالي : 

SELECT Employee.Id, Employee.name
, (SELECT SUM(Collection.Amount) FROM Collection WHERE Employee.Id= Collection.EmpId) AS AAAA
, (SELECT SUM(Penalty.Amount) FROM Penalty WHERE Employee.Id= Penalty.EmpId ) AS SSS
, (SELECT Sum(E_Dues.Amount)  FROM E_Dues WHERE  Employee.Id= E_Dues.EmpId) AS DDD
FROM Employee;
1

لا إله إلا الله ... محمد رسول الله

لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة

المعرًف القديم : houssam11350_11350

من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر

#8

شكرا جزيلا

#9
helskran كتب:

شكرا جزيلا

لا شكر على واجب .. بالتوفيق ..

ينقل لقسم الأكسس

لا إله إلا الله ... محمد رسول الله

لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة

المعرًف القديم : houssam11350_11350

من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر

#10

ولكن استفسار اخر عند تحويل الاستعلام الى Table Adapter  لا يفبل فى dataset لماذا

#11
helskran كتب:

ولكن استفسار اخر عند تحويل الاستعلام الى Table Adapter  لا يفبل فى dataset لماذا

اهلا بك أخي ... 

لاحظت أن طرحك للأسئلة غير موفق و غير حرفي ... في المرة الأولى قلت أن الاستعلام لم يعمل ..و الآن تقول أنه لا يعمل مع dataadatpet  ...

صديقي ... وضح لنا ما هي رسالة الخطأ التي ظهرت معك ... ضع لنا الكود المستخدم ؟ أحيانا يرفق صورة للشاشة الخطأ .. ؟؟

تم تعديل هذه المشاركة بواسطة حسام الشامي في 28 نوفمبر 2013 في 17:26

لا إله إلا الله ... محمد رسول الله

لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة

المعرًف القديم : houssam11350_11350

من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر

#12

السلام عليكم استاذ حسام

الاستعلام شغال تمام فى الاكسيس ولكن عند اضافة نفس الاستعلام الى كـ tableadapter فى dataset لا يعطى حقول لكى يتم التعامل معها مثلا فى التقارير هذا ما اقصدة .

وشكرا على الرد

#13 أفضل إجابة

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

أنا جربته , و وجدته يعطي حقول : 

Dim ConnSTR As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Application.StartupPath + "\Lawyer.mdb;Persist Security Info=False;"
		Dim connection As New OleDbConnection(ConnSTR)
		dim sql as String = "SELECT Employee.Id, Employee.name " & _
		", (SELECT SUM(Collection.Amount) FROM Collection WHERE Employee.Id= Collection.EmpId) AS AAAA " & _
		", (SELECT SUM(Penalty.Amount) FROM Penalty WHERE Employee.Id= Penalty.EmpId ) AS SSS " & _
		", (SELECT Sum(E_Dues.Amount)  FROM E_Dues WHERE  Employee.Id= E_Dues.EmpId) AS DDD " & _
		" FROM Employee; "
		
		Dim adapter As New OleDbDataAdapter(sql, connection)
		Dim dt As New DataTable ()
		adapter.Fill(dt)
		dataGridView1.DataSource = dt
1

لا إله إلا الله ... محمد رسول الله

لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة

المعرًف القديم : houssam11350_11350

من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر

#14

بارك الله بك اخي الكريم : حسام الشامي

 

+1

+1

 

بالتوفيق

#15

جزاك الله خيرا يا اخ حسام وشكرا على سرعة الرد

لكن حضرتك لم تفهمنى الطريقة اللى حضرتك زكرتها سليمة مع DataAdapter  وانا اعرفها جيدا

ولكن انا اطلب عمل tableAdapter وليس DataAdapter اى اقصد عمل tableAdapter بالوزرد اى المعالج داخل dataset لتمرير table Adapter الى تقرير هذا ما اقصدة

وشكرا على تعبك معاى

#16

انظر الصورة التالية للتوضيح لل tableAdapter

post-7030-0-07365400-1385724471_thumb.gi

#17

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

 

 

zahrah كتب:

بارك الله بك اخي الكريم : حسام الشامي

 

+1

+1

 

بالتوفيق

بارك الله بك أخت زهرة ..

 

 

helskran كتب:

جزاك الله خيرا يا اخ حسام وشكرا على سرعة الرد

لكن حضرتك لم تفهمنى الطريقة اللى حضرتك زكرتها سليمة مع DataAdapter  وانا اعرفها جيدا

ولكن انا اطلب عمل tableAdapter وليس DataAdapter اى اقصد عمل tableAdapter بالوزرد اى المعالج داخل dataset لتمرير table Adapter الى تقرير هذا ما اقصدة

وشكرا على تعبك معاى

بارك الله بك أخي ...

قم بحفظ الاستعلام  السابق في قاعدة البيانات ضمن الاستعلامات و ليكن اسم qrySum  , ثم من الفيجوال استديو , نقرة مزدوة على قاعدة البيانات في ملفات المشروع كي يتم فتحها في  النافذة Server Explorer  ثم تفتح الخيار views  فتجد فيه الاستعلام المطلوب , تسحبة داخل الــ DataSet  و يتم التعامل معه كأنه جدول ..

ملاحظة : كان يمكنك سحب TableAdapter  و إضافة الاستعلام عليه , لكن حقوله لا تظهر في وقت التنفيذ .

لا إله إلا الله ... محمد رسول الله

لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة

المعرًف القديم : houssam11350_11350

من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر

#18

شكرا جزيلا على الرد وانا عملت كدة واعرف اللى بتقولة جيدا وبعملة منذ فترة .

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

#19

لا شكر على واجب ..بالتوفيق

لا إله إلا الله ... محمد رسول الله

لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة

المعرًف القديم : houssam11350_11350

من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر

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

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

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

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

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

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