برجاء المساعدة فى تصحيح الاستعلام الموجود بالقاعدة المرفقة حيث انة يعطى بيان خاطى عن مجموع الكمية برجاء الافادة والرد عن مكان وجود الخطأ
برجاء المساعدة فى عمل الاستعلام الاتى
هذا الاستعلام برجاء المساعدة فى معرفة الخطأ
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;
هو الاستعلام صعب لدرجادى
لا توجد قاعدة مرفقة ...
عل كل حال الاستعلام صحيح ... ما هي رسالة الخطأ التي تظهر ... هل قاعدة البيانات أكسس أو سيكوال سيرفر ..؟؟؟
لا إله إلا الله ... محمد رسول الله
لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة
المعرًف القديم : houssam11350_11350
من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر
قاعدة البيانات اكسيس والاستعلام لا يعطى خطأ ولكن نتائجة خطأ ولقد ارفقت قاعدة البيانات ولكن لا اعرف لماذا لم تظهر وارجو توضيح طريقة ارفاقها مرة اخرى وشكرا
السلام عليكم ...
صديقي .. يجب أن تفهم مفهو الــ 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;
لا إله إلا الله ... محمد رسول الله
لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة
المعرًف القديم : houssam11350_11350
من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر
شكرا جزيلا
helskran كتب:شكرا جزيلا
لا شكر على واجب .. بالتوفيق ..
ينقل لقسم الأكسس
لا إله إلا الله ... محمد رسول الله
لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة
المعرًف القديم : houssam11350_11350
من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر
ولكن استفسار اخر عند تحويل الاستعلام الى Table Adapter لا يفبل فى dataset لماذا
helskran كتب:ولكن استفسار اخر عند تحويل الاستعلام الى Table Adapter لا يفبل فى dataset لماذا
اهلا بك أخي ...
لاحظت أن طرحك للأسئلة غير موفق و غير حرفي ... في المرة الأولى قلت أن الاستعلام لم يعمل ..و الآن تقول أنه لا يعمل مع dataadatpet ...
صديقي ... وضح لنا ما هي رسالة الخطأ التي ظهرت معك ... ضع لنا الكود المستخدم ؟ أحيانا يرفق صورة للشاشة الخطأ .. ؟؟
تم تعديل هذه المشاركة بواسطة حسام الشامي في 28 نوفمبر 2013 في 17:26
لا إله إلا الله ... محمد رسول الله
لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة
المعرًف القديم : houssam11350_11350
من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر
السلام عليكم استاذ حسام
الاستعلام شغال تمام فى الاكسيس ولكن عند اضافة نفس الاستعلام الى كـ tableadapter فى dataset لا يعطى حقول لكى يتم التعامل معها مثلا فى التقارير هذا ما اقصدة .
وشكرا على الرد
السلام عليكم ..
أنا جربته , و وجدته يعطي حقول :
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
لا إله إلا الله ... محمد رسول الله
لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة
المعرًف القديم : houssam11350_11350
من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر
جزاك الله خيرا يا اخ حسام وشكرا على سرعة الرد
لكن حضرتك لم تفهمنى الطريقة اللى حضرتك زكرتها سليمة مع DataAdapter وانا اعرفها جيدا
ولكن انا اطلب عمل tableAdapter وليس DataAdapter اى اقصد عمل tableAdapter بالوزرد اى المعالج داخل dataset لتمرير table Adapter الى تقرير هذا ما اقصدة
وشكرا على تعبك معاى
السلام عليكم ..
zahrah كتب:بارك الله بك اخي الكريم : حسام الشامي
+1
+1
بالتوفيق
بارك الله بك أخت زهرة ..
helskran كتب:جزاك الله خيرا يا اخ حسام وشكرا على سرعة الرد
لكن حضرتك لم تفهمنى الطريقة اللى حضرتك زكرتها سليمة مع DataAdapter وانا اعرفها جيدا
ولكن انا اطلب عمل tableAdapter وليس DataAdapter اى اقصد عمل tableAdapter بالوزرد اى المعالج داخل dataset لتمرير table Adapter الى تقرير هذا ما اقصدة
وشكرا على تعبك معاى
بارك الله بك أخي ...
قم بحفظ الاستعلام السابق في قاعدة البيانات ضمن الاستعلامات و ليكن اسم qrySum , ثم من الفيجوال استديو , نقرة مزدوة على قاعدة البيانات في ملفات المشروع كي يتم فتحها في النافذة Server Explorer ثم تفتح الخيار views فتجد فيه الاستعلام المطلوب , تسحبة داخل الــ DataSet و يتم التعامل معه كأنه جدول ..
ملاحظة : كان يمكنك سحب TableAdapter و إضافة الاستعلام عليه , لكن حقوله لا تظهر في وقت التنفيذ .
لا إله إلا الله ... محمد رسول الله
لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة
المعرًف القديم : houssam11350_11350
من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر
شكرا جزيلا على الرد وانا عملت كدة واعرف اللى بتقولة جيدا وبعملة منذ فترة .
ولكن كنت احب ان اجد طرقة اخرى غير اضافتة كستعلام وشكرا جزيلا
لا شكر على واجب ..بالتوفيق
لا إله إلا الله ... محمد رسول الله
لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة
المعرًف القديم : houssam11350_11350
من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر
هذا الموضوع مغلق.

