البرمجة

إجمالي تكلفة المنتج المنتهي في SQL

لفهم كيفية إنشاء إجراء (Procedure) في قاعدة البيانات الخاصة بك لعرض قائمة بجميع عناصر المنتجات المنتهية (ProductFinished)، وعرض المكونات، مع سعر الوحدة للمكون وإجمالي تكلفة المنتج المنتهي، يجب أولاً عمل استعلام (Query) يستخدم دالة الـ SUM لحساب إجمالي التكلفة لكل منتج منتهي. ثم، يجب إنشاء إجراء يستدعي هذا الاستعلام ويقوم بتنسيق النتائج بالشكل المطلوب.

في البداية، قم بإنشاء الاستعلام الذي يعيد البيانات التي تحتاجها. لاحظ أن الجدول ProductRawMaterial هو الذي يحتوي على معلومات المكونات وأسعارها:

sql
SELECT pf.NameFInishedProduct AS ProductName, pr.NameRawProduct AS IngredientName, pr.BuyPrice AS UnitPrice, COUNT(pr.NameRawProduct) AS Quantity, SUM(pr.BuyPrice) AS TotalIngredientCost FROM ProductFinished pf JOIN ProductRawMaterial pr ON pf.ID_FinishedProduct = pr.ID_FinishedProduct GROUP BY pf.NameFInishedProduct, pr.NameRawProduct, pr.BuyPrice

ثم، يمكنك استخدام هذا الاستعلام في إنشاء إجراء يقوم بتنسيق النتائج كما تحتاج. وهنا يكون الاجراء مثاليًا لتنسيق النتائج وإرجاعها بالشكل المطلوب:

sql
CREATE PROCEDURE GetFinishedProductDetails AS BEGIN SELECT 'The product ' + pf.NameFInishedProduct + ' is composed of' AS ProductDetails, CAST(COUNT(pr.NameRawProduct) AS NVARCHAR) + ' ' + pr.NameRawProduct + ' priced ' + CAST(pr.BuyPrice AS NVARCHAR) + ' € each' AS IngredientDetails, 'The total price of the ' + pf.NameFInishedProduct + ' is ' + CAST(SUM(pr.BuyPrice) AS NVARCHAR) + ' €.' AS TotalPrice FROM ProductFinished pf JOIN ProductRawMaterial pr ON pf.ID_FinishedProduct = pr.ID_FinishedProduct GROUP BY pf.NameFInishedProduct, pr.NameRawProduct, pr.BuyPrice END

يجب أن يساعد هذا الإجراء في عرض المنتجات المنتهية ومكوناتها مع تكلفتها الإجمالية بالشكل المطلوب. يمكنك تنفيذ الإجراء باستخدام الاستدعاء التالي:

sql
EXEC GetFinishedProductDetails

يرجى ملاحظة أنه قد تحتاج إلى ضبط الاستعلام والإجراء بناءً على هيكل قاعدة البيانات الفعلي الذي تعمل عليه، وقد تحتاج إلى تغيير بعض التفاصيل حسب ذلك.

المزيد من المعلومات

لتحسين استعلامك وتجنب الأخطاء المحتملة، يمكنك إضافة بعض المعلومات الإضافية والتحسينات إلى الاستعلام والإجراء. على سبيل المثال، يمكنك استخدام دالة CONCAT لتوحيد النصوص بدلاً من استخدام العمليات الرياضية، ويمكنك أيضًا تحسين عرض النتائج لجعله أكثر وضوحًا. إليك الإجراء المحدث:

sql
CREATE PROCEDURE GetFinishedProductDetails AS BEGIN SELECT CONCAT('The product ', pf.NameFInishedProduct, ' is composed of') AS ProductDetails, CONCAT(COUNT(pr.NameRawProduct), ' ', pr.NameRawProduct, ' priced ', pr.BuyPrice, ' € each') AS IngredientDetails, CONCAT('The total price of the ', pf.NameFInishedProduct, ' is ', SUM(pr.BuyPrice), ' €.') AS TotalPrice FROM ProductFinished pf JOIN ProductRawMaterial pr ON pf.ID_FinishedProduct = pr.ID_FinishedProduct GROUP BY pf.NameFInishedProduct, pr.NameRawProduct, pr.BuyPrice END

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

مقالات ذات صلة

زر الذهاب إلى الأعلى
إغلاق

أنت تستخدم إضافة Adblock

يرجى تعطيل مانع الإعلانات حيث أن موقعنا غير مزعج ولا بأس من عرض الأعلانات لك فهي تعتبر كمصدر دخل لنا و دعم مقدم منك لنا لنستمر في تقديم المحتوى المناسب و المفيد لك فلا تبخل بدعمنا عزيزي الزائر