تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[C#.NET] جمع حقلين من جدولين
#1
السلام عليكم ورحمه الله وبركاته
ارجو من خبراء المنتدى مساعدتى فى هذا الطلب 
يوجد 3 جداول

جدول Table_1 الحقل اسمه Total

جدول Table_2 الحقل اسمه Numpr_Total

جدول Table_3 الحقل اسم AS_Total


المطلوب
جمع الحقل (Numpr_Total) من جدول (Table_2)  + الحقل (AS_Total) من جدول (Table_3) واضافت المجموع فى الحقل (Total) فى جدول (Table_1) بشرط (ID)

لغه سي شارب
 
ولكم مني جزيل الشكر والاحترم
الرد
تم الشكر بواسطة:
#2
كود :
OleDbDataAdapter da = new OleDbDataAdapter(@"SELECT Table_2.ID, SUM(Table_2.Numpr_Total + Table_3.AS_Total) AS total FROM Table_2 INNER JOIN TABLE_3 ON Table_2.ID = Table_3.ID GROUP BY Table_2.ID", cnn);
DataTable dt = new DataTable();
if (da.Fill(dt) > 0)
{
   OleDbCommand cmd;
   if(cnn.State!=ConnectionState.Open)cnn.Open();
   foreach (DataRow r in dt.Rows)
   {
       cmd = new OleDbCommand(@"UPDATE Table_1 SET Total = @total WHERE ID=@id", cnn);
       cmd.Parameters.AddWithValue("@total", r["total"]);
       cmd.Parameters.AddWithValue("@id", r["ID"]);
       cmd.ExecuteNonQuery();
   }
   cnn.Close();
}
الرد
تم الشكر بواسطة: سعود , amonem
#3
(28-12-20, 03:03 PM)mol كتب :
كود :
OleDbDataAdapter da = new OleDbDataAdapter(@"SELECT Table_2.ID, SUM(Table_2.Numpr_Total + Table_3.AS_Total) AS total FROM Table_2 INNER JOIN TABLE_3 ON Table_2.ID = Table_3.ID GROUP BY Table_2.ID", cnn);
DataTable dt = new DataTable();
if (da.Fill(dt) > 0)
{
   OleDbCommand cmd;
   if(cnn.State!=ConnectionState.Open)cnn.Open();
   foreach (DataRow r in dt.Rows)
   {
       cmd = new OleDbCommand(@"UPDATE Table_1 SET Total = @total WHERE ID=@id", cnn);
       cmd.Parameters.AddWithValue("@total", r["total"]);
       cmd.Parameters.AddWithValue("@id", r["ID"]);
       cmd.ExecuteNonQuery();
   }
   cnn.Close();
}
شكراا لحضرتك استاذي الغالى لاهتمامك 
بس عندي ملحوظه هو بتهيقلى ان الكود بيعمل على قاعده بيانات اكسس وليس سيكول سيرفر
الرد
تم الشكر بواسطة:
#4
(28-12-20, 01:56 PM)amonem كتب : السلام عليكم ورحمه الله وبركاته
ارجو من خبراء المنتدى مساعدتى فى هذا الطلب 
يوجد 3 جداول

جدول Table_1 الحقل اسمه Total

جدول Table_2 الحقل اسمه Numpr_Total

جدول Table_3 الحقل اسم AS_Total


المطلوب
جمع الحقل (Numpr_Total) من جدول (Table_2)  + الحقل (AS_Total) من جدول (Table_3) واضافت المجموع فى الحقل (Total) فى جدول (Table_1) بشرط (ID)

لغه سي شارب
 
ولكم مني جزيل الشكر والاحترم

(28-12-20, 10:27 PM)amonem كتب :
(28-12-20, 03:03 PM)mol كتب :
كود :
OleDbDataAdapter da = new OleDbDataAdapter(@"SELECT Table_2.ID, SUM(Table_2.Numpr_Total + Table_3.AS_Total) AS total FROM Table_2 INNER JOIN TABLE_3 ON Table_2.ID = Table_3.ID GROUP BY Table_2.ID", cnn);
DataTable dt = new DataTable();
if (da.Fill(dt) > 0)
{
   OleDbCommand cmd;
   if(cnn.State!=ConnectionState.Open)cnn.Open();
   foreach (DataRow r in dt.Rows)
   {
       cmd = new OleDbCommand(@"UPDATE Table_1 SET Total = @total WHERE ID=@id", cnn);
       cmd.Parameters.AddWithValue("@total", r["total"]);
       cmd.Parameters.AddWithValue("@id", r["ID"]);
       cmd.ExecuteNonQuery();
   }
   cnn.Close();
}
شكراا لحضرتك استاذي الغالى لاهتمامك 
بس عندي ملحوظه هو بتهيقلى ان الكود بيعمل على قاعده بيانات اكسس وليس سيكول سيرفر

راجعت سؤالك اكثر من مرة
فلم اجد فيه انك ذكرت الاكسس او سيكول سيرفر فتركت لي الخيار
فاخترت الاكسس حين كنت متفرغا للجواب على سؤالك
الرد
تم الشكر بواسطة: amonem
#5
(28-12-20, 10:47 PM)mol كتب :
(28-12-20, 01:56 PM)amonem كتب : السلام عليكم ورحمه الله وبركاته
ارجو من خبراء المنتدى مساعدتى فى هذا الطلب 
يوجد 3 جداول

جدول Table_1 الحقل اسمه Total

جدول Table_2 الحقل اسمه Numpr_Total

جدول Table_3 الحقل اسم AS_Total


المطلوب
جمع الحقل (Numpr_Total) من جدول (Table_2)  + الحقل (AS_Total) من جدول (Table_3) واضافت المجموع فى الحقل (Total) فى جدول (Table_1) بشرط (ID)

لغه سي شارب
 
ولكم مني جزيل الشكر والاحترم

(28-12-20, 10:27 PM)amonem كتب :
(28-12-20, 03:03 PM)mol كتب :
كود :
OleDbDataAdapter da = new OleDbDataAdapter(@"SELECT Table_2.ID, SUM(Table_2.Numpr_Total + Table_3.AS_Total) AS total FROM Table_2 INNER JOIN TABLE_3 ON Table_2.ID = Table_3.ID GROUP BY Table_2.ID", cnn);
DataTable dt = new DataTable();
if (da.Fill(dt) > 0)
{
   OleDbCommand cmd;
   if(cnn.State!=ConnectionState.Open)cnn.Open();
   foreach (DataRow r in dt.Rows)
   {
       cmd = new OleDbCommand(@"UPDATE Table_1 SET Total = @total WHERE ID=@id", cnn);
       cmd.Parameters.AddWithValue("@total", r["total"]);
       cmd.Parameters.AddWithValue("@id", r["ID"]);
       cmd.ExecuteNonQuery();
   }
   cnn.Close();
}
شكراا لحضرتك استاذي الغالى لاهتمامك 
بس عندي ملحوظه هو بتهيقلى ان الكود بيعمل على قاعده بيانات اكسس وليس سيكول سيرفر

راجعت سؤالك اكثر من مرة
فلم اجد فيه انك ذكرت الاكسس او سيكول سيرفر فتركت لي الخيار
فاخترت الاكسس حين كنت متفرغا للجواب على سؤالك
شكرا لاهتمامك  اخى الغالى
انا بالفعل لم اذكر سيكول او اكسسس وجزاك الله كل خير ولكنى عدلته واشتغل لكن نتيجه الجمع خطأ 
مثال   موظف المجموع الصحيح بتاعه حسب البيانات فى الجدولين =1080 
بعد استخدام الكود الناتج  = 2340  يعني فرق شاسع
الرد
تم الشكر بواسطة:
#6
(29-12-20, 01:55 PM)mol كتب :
كود :
SELECT ID, SUM(total)
FROM   (
       SELECT ID,
              SUM(Table_2.Numpr_Total) AS total
       FROM   Table_2
       GROUP  BY ID
       UNION  ALL
       SELECT Table_3.ID,
              SUM(Table_3.AS_Total) AS total
       FROM   TABLE_3
       GROUP  BY ID)
GROUP  BY ID
شكرا لاهتمامك اخى الغالى
الكود سي شارب ولا ايه خبرتى بسيطه ؟؟
الرد
تم الشكر بواسطة:
#7
كود :
SELECT ID, SUM(total) AS total
FROM   ( SELECT ID,
               SUM(Table_2.Numpr_Total) AS total
        FROM   Table_2
        GROUP  BY ID
        UNION  ALL
        SELECT Table_3.ID,
               SUM(Table_3.AS_Total) AS total
        FROM   TABLE_3
        GROUP  BY ID
      )
GROUP  BY ID

هذا تعديل للاستعلام الاول في سطر OleDbDataAdapter da
الرد
تم الشكر بواسطة:
#8
(29-12-20, 02:00 PM)mol كتب :
كود :
SELECT ID, SUM(total) AS total
FROM   ( SELECT ID,
               SUM(Table_2.Numpr_Total) AS total
        FROM   Table_2
        GROUP  BY ID
        UNION  ALL
        SELECT Table_3.ID,
               SUM(Table_3.AS_Total) AS total
        FROM   TABLE_3
        GROUP  BY ID
      )
GROUP  BY ID

هذا تعديل للاستعلام الاول في سطر OleDbDataAdapter da

(29-12-20, 02:16 PM)amonem كتب :
(29-12-20, 02:00 PM)mol كتب :
كود :
SELECT ID, SUM(total) AS total
FROM   ( SELECT ID,
               SUM(Table_2.Numpr_Total) AS total
        FROM   Table_2
        GROUP  BY ID
        UNION  ALL
        SELECT Table_3.ID,
               SUM(Table_3.AS_Total) AS total
        FROM   TABLE_3
        GROUP  BY ID
      )
GROUP  BY ID

هذا تعديل للاستعلام الاول في سطر OleDbDataAdapter da
بيظهر خطأ كما فى الصوره


الملفات المرفقة صورة/صور
   
الرد
تم الشكر بواسطة:
#9
كود :
OleDbDataAdapter da = new OleDbDataAdapter(@"SELECT ID, SUM(total) AS total FROM (SELECT ID, SUM(Table_2.Numpr_Total) AS total FROM Table_2 GROUP BY ID UNION ALL SELECT Table_3.ID, SUM(Table_3.AS_Total) AS total FROM TABLE_3 GROUP BY ID) GROUP BY ID", cnn);

كود :
SqlDataAdapter da = new SqlDataAdapter(@"SELECT ID, SUM(total) AS total FROM (SELECT ID, SUM(Table_2.Numpr_Total) AS total FROM Table_2 GROUP BY ID UNION ALL SELECT Table_3.ID, SUM(Table_3.AS_Total) AS total FROM TABLE_3 GROUP BY ID) GROUP BY ID", cnn);
الرد
تم الشكر بواسطة:
#10
(29-12-20, 02:25 PM)mol كتب :
كود :
OleDbDataAdapter da = new OleDbDataAdapter(@"SELECT ID, SUM(total) AS total FROM (SELECT ID, SUM(Table_2.Numpr_Total) AS total FROM Table_2 GROUP BY ID UNION ALL SELECT Table_3.ID, SUM(Table_3.AS_Total) AS total FROM TABLE_3 GROUP BY ID) GROUP BY ID", cnn);

كود :
SqlDataAdapter da = new SqlDataAdapter(@"SELECT ID, SUM(total) AS total FROM (SELECT ID, SUM(Table_2.Numpr_Total) AS total FROM Table_2 GROUP BY ID UNION ALL SELECT Table_3.ID, SUM(Table_3.AS_Total) AS total FROM TABLE_3 GROUP BY ID) GROUP BY ID", cnn);

نفس رساله الخطا للاسف
الرد
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  عرض جدولين في نفس التقرير crystal report Rabeea Qbaha 3 1,113 22-10-19, 02:25 AM
آخر رد: Rabeea Qbaha

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم