تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
المساعدة في حل كود استعلام
#1
السلام عليكم 
المساعدة في حل كود استعلام كما في الصورة
وهو خصم كمية بين جدولين
مرفقة مثال لتوضيح أكثر وإضافة الكود من عباقرة هذا المنتدا


الملفات المرفقة صورة/صور
   

.rar   Test1_2.rar (الحجم : 66.07 ك ب / التحميلات : 13)
الرد }}}
تم الشكر بواسطة:
#2
وعليكم السلام ورحمة الله وبركاته

مرفق السورس + برنامح للاختبار

كود الاستعلام المستخدم لقاعدة البيانات المرفقة
كود :
"SELECT '1' As ID, T1.name, SUM(T1.value) - SUM(T2.value) AS TOTAL FROM Table1 As T1 INNER JOIN Table2 As T2 ON T1.name = T2.name WHERE T1.name = '" & TextBox1.Text & "' GROUP BY T1.name"

تحياتى لك
وتمنياتى لك التوفيق


الملفات المرفقة
.zip   Pro.zip (الحجم : 28.64 ك ب / التحميلات : 19)
.zip   Test1.zip (الحجم : 42.43 ك ب / التحميلات : 17)
{ وَقُل رَّبِّ زِدْنِي عِلْمًا }
[ كن على يقين من اعمالنا نخطئ ومن اخطائنا نتعلم ولذلك لا شي مستحيل ]

ساهم دائماً فى    لكل من يقوم بالمساهمة
فى حل المشكلة او الاستفسار لديك فالجميع هنا يعمل 
على مساعدة الاخرين لوجه الله وان تحتسب له اجر عند الله


 شرح كيفية عمل قاعدة بيانات تعمل على اكثر من جهاز على الشبكة الداخلية
الرد }}}
تم الشكر بواسطة:
#3
(13-08-18, 08:50 PM)elgokr كتب :
وعليكم السلام ورحمة الله وبركاته

مرفق السورس + برنامح للاختبار

كود الاستعلام المستخدم لقاعدة البيانات المرفقة
كود :
"SELECT '1' As ID, T1.name, SUM(T1.value) - SUM(T2.value) AS TOTAL FROM Table1 As T1 INNER JOIN Table2 As T2 ON T1.name = T2.name WHERE T1.name = '" & TextBox1.Text & "' GROUP BY T1.name"

تحياتى لك
وتمنياتى لك التوفيق

مشكور elgokr دائما متميز وسباق لمساعدة الاخرين 

وبالنسبة للمثال نتائج الطرح غير صحيحة أرجو منك التجربة ومشكور مرة أخري
الرد }}}
تم الشكر بواسطة:
#4
الشكر لله

بخصوص الكود
بنائاً على الصورة المرفقة بالموضوع

حيث ان الصورة المرفقة توضح ان اجمالى الجدول الاول 
يطرح منه اجمالى الجدول الثاني

ليعرض البيانات كما لو انه فى جدول الثالث

قاعدة البيانات تحتوى على 
الجدول الاول 
الاسم 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

بالنهاية السورس + برنامج الاختبار مرفق
واتمنى ان الصورة النهائية للاستعلام واضحة وان الامر غير معقد

تحياتى لك
وتمنياتى لك التوفيق


الملفات المرفقة
.zip   Pro.zip (الحجم : 28.73 ك ب / التحميلات : 15)
.zip   Test1.zip (الحجم : 47.13 ك ب / التحميلات : 22)
{ وَقُل رَّبِّ زِدْنِي عِلْمًا }
[ كن على يقين من اعمالنا نخطئ ومن اخطائنا نتعلم ولذلك لا شي مستحيل ]

ساهم دائماً فى    لكل من يقوم بالمساهمة
فى حل المشكلة او الاستفسار لديك فالجميع هنا يعمل 
على مساعدة الاخرين لوجه الله وان تحتسب له اجر عند الله


 شرح كيفية عمل قاعدة بيانات تعمل على اكثر من جهاز على الشبكة الداخلية
الرد }}}
#5
(14-08-18, 08:11 PM)elgokr كتب :
الشكر لله

بخصوص الكود
بنائاً على الصورة المرفقة بالموضوع

حيث ان الصورة المرفقة توضح ان اجمالى الجدول الاول 
يطرح منه اجمالى الجدول الثاني

ليعرض البيانات كما لو انه فى جدول الثالث

قاعدة البيانات تحتوى على 
الجدول الاول 
الاسم 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

بالنهاية السورس + برنامج الاختبار مرفق
واتمنى ان الصورة النهائية للاستعلام واضحة وان الامر غير معقد

تحياتى لك
وتمنياتى لك التوفيق

مشكور جدا جدا يالغالي على صبرك وتعبك معي دائما حفظ الله ورعاك
 وتم تجريب الكود والكود شغال عشرة علي عشرة عن طريق البحث بأسم الكود 
وبس هناك مشكلة عند فتح الفورم لايقوم بعرض كل الاصناف بنتائج الخصم ومشكووور جدا
الرد }}}
تم الشكر بواسطة:
#6
(14-08-18, 09:43 PM)نور الهدى الهدى كتب : مشكور جدا جدا يالغالي على صبرك وتعبك معي دائما حفظ الله ورعاك
 وتم تجريب الكود والكود شغال عشرة علي عشرة عن طريق البحث بأسم الكود 
وبس هناك مشكلة عند فتح الفورم لايقوم بعرض كل الاصناف بنتائج الخصم ومشكووور جدا

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

(13-08-18, 08:23 PM)نور الهدى الهدى كتب : السلام عليكم 
المساعدة في حل كود استعلام كما في الصورة
وهو خصم كمية بين جدولين
مرفقة مثال لتوضيح أكثر وإضافة الكود من عباقرة هذا المنتدا

لذلك لا تجعل السؤال على شبه محدود كما لو ان من سيقوم بالمساعدة
على علم بما انت تفكر به فيجب ان يكون السؤال موضح ومحدد لما تريده تماماً
{ وَقُل رَّبِّ زِدْنِي عِلْمًا }
[ كن على يقين من اعمالنا نخطئ ومن اخطائنا نتعلم ولذلك لا شي مستحيل ]

ساهم دائماً فى    لكل من يقوم بالمساهمة
فى حل المشكلة او الاستفسار لديك فالجميع هنا يعمل 
على مساعدة الاخرين لوجه الله وان تحتسب له اجر عند الله


 شرح كيفية عمل قاعدة بيانات تعمل على اكثر من جهاز على الشبكة الداخلية
الرد }}}
تم الشكر بواسطة: ابو روضة , ابو روضة
#7
تم اضافة الكود اللازم لعرض جميع الاصناف

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

مرفق السورس + برنامج للاختبار

تحياتى لك
وتمنياتى لك التوفيق


الملفات المرفقة
.zip   Pro.zip (الحجم : 30.86 ك ب / التحميلات : 13)
.zip   Test1.zip (الحجم : 49.6 ك ب / التحميلات : 16)
{ وَقُل رَّبِّ زِدْنِي عِلْمًا }
[ كن على يقين من اعمالنا نخطئ ومن اخطائنا نتعلم ولذلك لا شي مستحيل ]

ساهم دائماً فى    لكل من يقوم بالمساهمة
فى حل المشكلة او الاستفسار لديك فالجميع هنا يعمل 
على مساعدة الاخرين لوجه الله وان تحتسب له اجر عند الله


 شرح كيفية عمل قاعدة بيانات تعمل على اكثر من جهاز على الشبكة الداخلية
الرد }}}
#8
(15-08-18, 10:32 AM)elgokr كتب :
تم اضافة الكود اللازم لعرض جميع الاصناف

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

مرفق السورس + برنامج للاختبار

تحياتى لك
وتمنياتى لك التوفيق

مشكووور جدا وهذا الكود المطلوب وعسي الله ان يديم عليك كل الخير ويزيدك من علمه

وبالنسبة لبناء قاعدة البيانات  ان هذه أسهل طريقة لجرد الاصناف حيث هناك جدول للإضافة وجدول للخصم
 وبهذا الكود يمكنني إضهار كشف بالمتوفر حاليا بالمخازن هذا في رائي الشخصي  Confused

وماذا عن رايك  Idea
الرد }}}
تم الشكر بواسطة:
#9
(15-08-18, 01:54 PM)نور الهدى الهدى كتب : مشكووور جدا وهذا الكود المطلوب وعسي الله ان يديم عليك كل الخير ويزيدك من علمه

وبالنسبة لبناء قاعدة البيانات  ان هذه أسهل طريقة لجرد الاصناف حيث هناك جدول للإضافة وجدول للخصم
 وبهذا الكود يمكنني إضهار كشف بالمتوفر حاليا بالمخازن هذا في رائي الشخصي  Confused

وماذا عن رايك  Idea

الشكر لله وتقبل الله منك الدعاء
بخصوص الاسس وبناء قاعدة البيانات
مثلاً مثل هذا الجدولين يفضل ان يكون فى جدول واحد
بحيث يكون شكل الجدول بهذا الترتيب

ID     -     NAME     -     Madin     -     Dain
  A1     -       aaa      -      1000      -       0
A1     -       aaa      -         0         -     500

اما ان يكون هكذا كما لو تبني نظام من حساب الى حساب

أو ان يتم كما انت تتعامل فى جدولين
ولكن يكون ترتيب الجدولين متساوى
بمعنى لو قمت بالاضافة فى الجدول الثاني يتم اضافة 
نفس الوضع فى الجدول الثاني ولكن بقيمة 0
وعند الاضافة فى الجدول الثاني الدين يكون القيمة فى الاول 0 فى نفس الوقت

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

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

دون ان يتم عمل استعلام داخل استعلام ... الخ كما فى الكود بالاعلى
اتمنى ان تكون الفكرة وصلت لك

تحياتى لك
وتمنياتى لك التوفيق
{ وَقُل رَّبِّ زِدْنِي عِلْمًا }
[ كن على يقين من اعمالنا نخطئ ومن اخطائنا نتعلم ولذلك لا شي مستحيل ]

ساهم دائماً فى    لكل من يقوم بالمساهمة
فى حل المشكلة او الاستفسار لديك فالجميع هنا يعمل 
على مساعدة الاخرين لوجه الله وان تحتسب له اجر عند الله


 شرح كيفية عمل قاعدة بيانات تعمل على اكثر من جهاز على الشبكة الداخلية
الرد }}}
#10
(15-08-18, 07:32 PM)elgokr كتب :
(15-08-18, 01:54 PM)نور الهدى الهدى كتب : مشكووور جدا وهذا الكود المطلوب وعسي الله ان يديم عليك كل الخير ويزيدك من علمه

وبالنسبة لبناء قاعدة البيانات  ان هذه أسهل طريقة لجرد الاصناف حيث هناك جدول للإضافة وجدول للخصم
 وبهذا الكود يمكنني إضهار كشف بالمتوفر حاليا بالمخازن هذا في رائي الشخصي  Confused

وماذا عن رايك  Idea

الشكر لله وتقبل الله منك الدعاء
بخصوص الاسس وبناء قاعدة البيانات
مثلاً مثل هذا الجدولين يفضل ان يكون فى جدول واحد
بحيث يكون شكل الجدول بهذا الترتيب

ID     -     NAME     -     Madin     -     Dain
  A1     -       aaa      -      1000      -       0
A1     -       aaa      -         0         -     500

اما ان يكون هكذا كما لو تبني نظام من حساب الى حساب

أو ان يتم كما انت تتعامل فى جدولين
ولكن يكون ترتيب الجدولين متساوى
بمعنى لو قمت بالاضافة فى الجدول الثاني يتم اضافة 
نفس الوضع فى الجدول الثاني ولكن بقيمة 0
وعند الاضافة فى الجدول الثاني الدين يكون القيمة فى الاول 0 فى نفس الوقت

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

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

دون ان يتم عمل استعلام داخل استعلام ... الخ كما فى الكود بالاعلى
اتمنى ان تكون الفكرة وصلت لك

تحياتى لك
وتمنياتى لك التوفيق

فكرة جميلة جدا Idea سأقوم بتجريبتها وأعلمك فور الإنتهاء من التجربة وشكرا جزيل الشكر
الرد }}}
تم الشكر بواسطة: elgokr , elgokr



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


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