تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
مشكلة في ال Stored Procedure - ( الاجراء المخزن )
#1
السلام عليكم اخواني
عندي مشكلة في ال Stored procedure او الاجراء المخزن 
والمشكلة كالاتى 
عندي هذا الاجراء المخزن وشغال تمام زي ما موضح بالصورة ومجموعه مظبوط 22
ولكن لما بحاول اضيف جمع لعامود ثاني من Table ثاني بيحصل مشكلة وهي ان الارقام مش بتكون صحيحه كما موضح بالصورة

طبعاً مجموع عامود ال Total Received الصحيح هو 22 كما موضح في اول صورة وليس 68 
ومجموع ثاني عامود 134 مظبوط فعلا 134 ولكن المشكلة عند اضافه ثان عامود كما موضح بالصور بيحصل لخبطه في مجموع ال Total Received 
بتمني حد يساعدني في حل المشكلة دى 
شكراً لكم
الرد }}}
تم الشكر بواسطة:
#2
وعليكم السلام ورحمة الله وبركاته

المشكلة عندك أنك : طلبت جمع قيمة عمود في جدول1 ، ثم جمع قيمة عمود من جدول 2
ثم كتب الكل من جدول1 (وهنا حدث الخطأ - لفأن كل عمود من جدول مختلف عن الثاني، فكيف تنسب الجميع لجدول واحد)

التصحيح :

كود :
Select
Sum(Quantity) As 'Total Received' From TBL_Products_Received_Details
UNION ALL
Sum(Quantity) As 'Total Outgoing' From TBL_Outgoing_Products_Details
لا تنسى التأكد من الكود ربما فيه أخطاء إملائية ..
قال صلى الله عليه وسلم: 
«كلمتان خفيفتان على اللسان 
ثقيلتان في الميزان،حبيبتان إلى الرحمن: 
سبحان الله وبحمده، سبحان الله العظيم».
الرد }}}
تم الشكر بواسطة: maxruined , maxruined
#3
(07-10-22, 05:25 AM)Taha Okla كتب : وعليكم السلام ورحمة الله وبركاته

المشكلة عندك أنك : طلبت جمع قيمة عمود في جدول1 ، ثم جمع قيمة عمود من جدول 2
ثم كتب الكل من جدول1 (وهنا حدث الخطأ - لفأن كل عمود من جدول مختلف عن الثاني، فكيف تنسب الجميع لجدول واحد)

التصحيح :

كود :
Select
Sum(Quantity) As 'Total Received' From TBL_Products_Received_Details
UNION ALL
Sum(Quantity) As 'Total Outgoing' From TBL_Outgoing_Products_Details
لا تنسى التأكد من الكود ربما فيه أخطاء إملائية ..
شكراً جداً اخوي علي مساعدتك 
فعلا الاستعلام دلوقتي شغال تمام ولكن فيه مشكلة واحده وهي ان مجموع القيمتين بيبقوا تحت بعض زي كدا
المفروض يكون مجموع كل قيمه في عامود مختلف مش تحت بعض 
ازاى بقدر اخلي كل مجموع قيمه في عامود مختلف
ولك جزيل الشكر اخوي 
شكراً جداً علي مساعدتك
الرد }}}
تم الشكر بواسطة:
#4
PHP كود :
SELECT TBL_Products_Received_Details.Product_S_N   AS 'Product SN'
 
      SUM(TBL_Products_Received_Details.Quantity) AS 'Total Received'
 
      SUM(TBL_Outgoing_Products_Details.Quantity) AS 'Total Outgoing' 
FROM   TBL_Products_Received_Details 
INNER  JOIN TBL_Outgoing_Products_Details 
       ON TBL_Outgoing_Products_Details
.Product_S_N TBL_Products_Received_Details.Product_S_N 
GROUP  BY TBL_Products_Received_Details
.Product_S_N 
الرد }}}
تم الشكر بواسطة: maxruined , maxruined
#5
(12-10-22, 09:16 AM)Meen2 كتب :
PHP كود :
SELECT TBL_Products_Received_Details.Product_S_N   AS 'Product SN'
 
      SUM(TBL_Products_Received_Details.Quantity) AS 'Total Received'
 
      SUM(TBL_Outgoing_Products_Details.Quantity) AS 'Total Outgoing' 
FROM   TBL_Products_Received_Details 
INNER  JOIN TBL_Outgoing_Products_Details 
       ON TBL_Outgoing_Products_Details
.Product_S_N TBL_Products_Received_Details.Product_S_N 
GROUP  BY TBL_Products_Received_Details
.Product_S_N 

السلام عليكم اخوي 

شكرا جداً ليك ولكن الاستعلام مش بينفذ اللي محتاجه وايضاً بيجيب مجموع الارقام غلط
بتمني حد يساعدني في حل المشكلة دي .. شكراً مقدماً
الرد }}}
تم الشكر بواسطة:
#6
(12-10-22, 01:01 PM)maxruined كتب :
(12-10-22, 09:16 AM)Meen2 كتب :
PHP كود :
SELECT TBL_Products_Received_Details.Product_S_N   AS 'Product SN'
 
      SUM(TBL_Products_Received_Details.Quantity) AS 'Total Received'
 
      SUM(TBL_Outgoing_Products_Details.Quantity) AS 'Total Outgoing' 
FROM   TBL_Products_Received_Details 
INNER  JOIN TBL_Outgoing_Products_Details 
       ON TBL_Outgoing_Products_Details
.Product_S_N TBL_Products_Received_Details.Product_S_N 
GROUP  BY TBL_Products_Received_Details
.Product_S_N 

السلام عليكم اخوي 

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


عندما تريد تنفيذ هذا الكود يجب أن لا يكون هناك قيم مكررة لكل مفتاح رئيسي في كلا الجدولين(يعني فقط سجل في كل جدول)،
فأي سجل من جدول يرتبط بسجلين أو أكثر  من جدول آخر : يقوم بمضاعفة تلك القيم للسجل المفرد بعدد السجلات المرتبط بها من الجدول الآخر
(وعليه يكون هناك خطأ بالقيم الناتجة)..
هذا توضيح لسبب المشكلة الناتجة .. (لا أعلم لها حل).
ربما غيري لديه طريقة - أو يفهم المشكلة ويجد لها حل.
==
فلا أعلم حتى الان حل سوى الحل الذي طرحته في مشاركتي الأولى هنا.
قال صلى الله عليه وسلم: 
«كلمتان خفيفتان على اللسان 
ثقيلتان في الميزان،حبيبتان إلى الرحمن: 
سبحان الله وبحمده، سبحان الله العظيم».
الرد }}}
تم الشكر بواسطة: Meen2 , maxruined
#7
(12-10-22, 02:53 PM)Taha Okla كتب : عندما تريد تنفيذ هذا الكود يجب أن لا يكون هناك قيم مكررة لكل مفتاح رئيسي في كلا الجدولين(يعني فقط سجل في كل جدول)،
فأي سجل من جدول يرتبط بسجلين أو أكثر  من جدول آخر : يقوم بمضاعفة تلك القيم للسجل المفرد بعدد السجلات المرتبط بها من الجدول الآخر
(وعليه يكون هناك خطأ بالقيم الناتجة)..
هذا توضيح لسبب المشكلة الناتجة .. (لا أعلم لها حل).
ربما غيري لديه طريقة - أو يفهم المشكلة ويجد لها حل.
==
فلا أعلم حتى الان حل سوى الحل الذي طرحته في مشاركتي الأولى هنا.

انا مع الاخ طه
فقد شعرت ان هناك خطا في قاعدة البيانات

فالافضل ان ترفق سكريبت قاعدة البيانات للتاكد وعدم المضي في طريق مشكوك في اساسه
الرد }}}
تم الشكر بواسطة: Taha Okla , maxruined
#8
(12-10-22, 02:53 PM)Taha Okla كتب :
(12-10-22, 01:01 PM)maxruined كتب :
(12-10-22, 09:16 AM)Meen2 كتب :
PHP كود :
SELECT TBL_Products_Received_Details.Product_S_N   AS 'Product SN'
 
      SUM(TBL_Products_Received_Details.Quantity) AS 'Total Received'
 
      SUM(TBL_Outgoing_Products_Details.Quantity) AS 'Total Outgoing' 
FROM   TBL_Products_Received_Details 
INNER  JOIN TBL_Outgoing_Products_Details 
       ON TBL_Outgoing_Products_Details
.Product_S_N TBL_Products_Received_Details.Product_S_N 
GROUP  BY TBL_Products_Received_Details
.Product_S_N 

السلام عليكم اخوي 

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


عندما تريد تنفيذ هذا الكود يجب أن لا يكون هناك قيم مكررة لكل مفتاح رئيسي في كلا الجدولين(يعني فقط سجل في كل جدول)،
فأي سجل من جدول يرتبط بسجلين أو أكثر  من جدول آخر : يقوم بمضاعفة تلك القيم للسجل المفرد بعدد السجلات المرتبط بها من الجدول الآخر
(وعليه يكون هناك خطأ بالقيم الناتجة)..
هذا توضيح لسبب المشكلة الناتجة .. (لا أعلم لها حل).
ربما غيري لديه طريقة - أو يفهم المشكلة ويجد لها حل.
==
فلا أعلم حتى الان حل سوى الحل الذي طرحته في مشاركتي الأولى هنا.

شكرا جداً اخوي طه انشاء الله بحاول وبجد حل ولو وجدته هطرحه بالمنتدي هنا 

شكراً جزلاً لك

(12-10-22, 11:46 PM)Meen2 كتب :
(12-10-22, 02:53 PM)Taha Okla كتب : عندما تريد تنفيذ هذا الكود يجب أن لا يكون هناك قيم مكررة لكل مفتاح رئيسي في كلا الجدولين(يعني فقط سجل في كل جدول)،
فأي سجل من جدول يرتبط بسجلين أو أكثر  من جدول آخر : يقوم بمضاعفة تلك القيم للسجل المفرد بعدد السجلات المرتبط بها من الجدول الآخر
(وعليه يكون هناك خطأ بالقيم الناتجة)..
هذا توضيح لسبب المشكلة الناتجة .. (لا أعلم لها حل).
ربما غيري لديه طريقة - أو يفهم المشكلة ويجد لها حل.
==
فلا أعلم حتى الان حل سوى الحل الذي طرحته في مشاركتي الأولى هنا.

انا مع الاخ طه
فقد شعرت ان هناك خطا في قاعدة البيانات

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


الملفات المرفقة
.rar   script.rar (الحجم : 3.55 ك ب / التحميلات : 15)
الرد }}}
تم الشكر بواسطة:
#9
مثل ما ذكر الأخ طه ما شاء الله تبارك الله، ملاحظة دقيقة
(12-10-22, 02:53 PM)Taha Okla كتب : عندما تريد تنفيذ هذا الكود يجب أن لا يكون هناك قيم مكررة لكل مفتاح رئيسي في كلا الجدولين(يعني فقط سجل في كل جدول)،

قم بإضافة عمود ID  كمفتاح أساسي PrimaryKey من نوع ترقيم تلقائي Identity (في كلا الجدولين)
كود :
SELECT TBL_Products_Received_Details.Product_S_N   AS 'Product SN',
       SUM(TBL_Products_Received_Details.Quantity) AS 'Total Received',
       SUM(TBL_Outgoing_Products_Details.Quantity) AS 'Total Outgoing'
FROM   TBL_Products_Received_Details
INNER  JOIN TBL_Outgoing_Products_Details
       ON TBL_Outgoing_Products_Details.ID = TBL_Products_Received_Details.ID
GROUP  BY TBL_Products_Received_Details.Product_S_N
الرد }}}
تم الشكر بواسطة: maxruined , maxruined
#10
(15-10-22, 04:37 PM)Meen2 كتب : مثل ما ذكر الأخ طه ما شاء الله تبارك الله، ملاحظة دقيقة
(12-10-22, 02:53 PM)Taha Okla كتب : عندما تريد تنفيذ هذا الكود يجب أن لا يكون هناك قيم مكررة لكل مفتاح رئيسي في كلا الجدولين(يعني فقط سجل في كل جدول)،

قم بإضافة عمود ID  كمفتاح أساسي PrimaryKey من نوع ترقيم تلقائي Identity (في كلا الجدولين)
كود :
SELECT TBL_Products_Received_Details.Product_S_N   AS 'Product SN',
       SUM(TBL_Products_Received_Details.Quantity) AS 'Total Received',
       SUM(TBL_Outgoing_Products_Details.Quantity) AS 'Total Outgoing'
FROM   TBL_Products_Received_Details
INNER  JOIN TBL_Outgoing_Products_Details
       ON TBL_Outgoing_Products_Details.ID = TBL_Products_Received_Details.ID
GROUP  BY TBL_Products_Received_Details.Product_S_N

السلام عليكم اخوي 

حقيقي شكراً جداً على تفاعلك معي 
انا عملت كدا بالفعل ولكن للاسف مش بيعطيني مجموع كل القيم مظبوط مثل ما انا كاتب بالاستعلام 
يعني مثلا دا الجدول الاول اللي بجيب منه كل مجموع قيم ال Quantity
للعلم لو تم إضافه سطر جديد الاستعلام اللى تحت مش بيشوفه اصلا
ودا صورة الجدول الثانى اللي بجيب منه كل مجموع قيم Quantity 
ودا شكل الاستعلام وزى ما موضح بالصورة انه جايب فقط كل قيم  العامود الاول وهو Total Received صحيحه ولكن مثل ما ذكرت فوق انه لو تم اضافه سطر جديد في [b]العامود الاول وهو Total Received مش هيجيب غير ال 6 اسطر دول فقط [/b]
 
وبالنسبة للجدول الثانى فالمفروض تكون القيم كالاتي

الصنف الاول وهو 4011 المفروض تكون قيمته 26 وليس 12
الصنف الاول وهو 4012 المفروض تكون قيمته 4 وليس 2
الصنف الاول وهو 4013 المفروض تكون قيمته 31 وليس 8
الصنف الاول وهو 4014 المفروض تكون قيمته 4 وليس 1
الصنف الاول وهو 4015 المفروض تكون قيمته 55 وليس 18
الصنف الاول وهو 4016 المفروض تكون قيمته 5 وليس 3

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



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


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