الشكر لله
بخصوص الكود
بنائاً على الصورة المرفقة بالموضوع
حيث ان الصورة المرفقة توضح ان اجمالى الجدول الاول
يطرح منه اجمالى الجدول الثاني
ليعرض البيانات كما لو انه فى جدول الثالث
قاعدة البيانات تحتوى على
الجدول الاول
الاسم aaa وهو الارقام الخاصة به : ( 1000 + 500 + 1000 + 500 + 1000 ) = 4000
حيث ان الاسم bbb وهو الارقام الخاصة به : ( 500 ) = 500
الجدول الثاني
الاسم aaa وهو الارقام الخاصة به : ( 500 + 1000 + 1000 + 500 ) = 3000
حيث ان الاسم bbb وهو الارقام الخاصة به : ( 300 + 100 ) = 400
ليعطى الاجمالى النهائي للجدول الثالث
الاسم aaa لاجمالى ( 4000 - 3000 ) = 1000
الاسم bbb لاجمالى ( 500 - 400 ) = 100
وبناءاً ان عدد الاسم فى الجدول الاول لا يتوافق مع عدد الاسم فى الجدول الثاني
فتم عمل الكود التانى حتى يتجنب اى من نواقص وتزايد اعداد الاضافة لكل جدول
ليصبح كود الاستعلام بهذا الشكل
كود الاستعلام الاول
كود :
Dim cmd As New OleDbCommand("", CNN)
تم استبداله ليصبح
كود :
Dim cmd As New OleDbCommand(GetT3(TextBox1.Text), CNN)
وكود الاستعلام الثاني
كود :
Dim AA As OleDbDataAdapter = New OleDbDataAdapter("", CNN)
تم استبداله ليصبح
كود :
Dim AA As OleDbDataAdapter = New OleDbDataAdapter(GetT3(TextBox1.Text), CNN)
مع اضافة الكود التالى
كود :
Private Function GetT3(ByVal Val As String)
Dim sql As String
sql = "SELECT '1' AS ID, '" & Val & "' AS NAME, ((T1.s) - (T2.s)) AS TOTAL FROM (SELECT SUM(value) as s FROM Table1 WHERE name='" & Val & "') T1, (SELECT SUM(value) as s from Table2 WHERE name='" & Val & "') T2"
Return sql
End Function
بالنهاية السورس + برنامج الاختبار مرفق
واتمنى ان الصورة النهائية للاستعلام واضحة وان الامر غير معقد
تحياتى لك
وتمنياتى لك التوفيق