17-10-22, 10:37 AM
ما شاء الله أستاذ طه
الحل الأفضل المقدم من الأستاذ طه
أو
(16-10-22, 06:35 PM)Taha Okla كتب : القيم غير موجودة أساساً كما تفضلت - ولكن عند الربط بينها سيقوم كود الـ SQL على تكرار تلك القيم (إعتماداً على مطابقات رياضية كنوع يشبه التراتيب والتوافيق) لكي لا يصبح في الجدول الجديد حقول من الجدول الأول لا يطابقها حقول من الجدول الثاني (وهذا هو سبب الخطأ الذي حدث معك في نواتج عملية الجمع).تحليل استفدت منه
(16-10-22, 06:35 PM)Taha Okla كتب : الكود الذي طرحه الأخ (Meen2) ليس بالكود القياسي حتى الآن (من وجهة نظري- ربما غير له وجهة نظر أخرى) فـ بالرغم من تطابق الحلول حالياً لكن أظن أنه سينشأ عن ذلك أخطاء في المستقبل لسبب أجهله.فعلا الحل الذي قدمته انا ليس بالكود القياسي لأنني كنت أسير بطريقة صاحب السؤال
(16-10-22, 06:35 PM)Taha Okla كتب : أظن أن الحل هو : أن يتم عمل جدول (جدول إفتراضي عن طريق الكود) جديد ناتج عن الجدول الأول بواسطة الوظيفة (Group By) ليمنع تكرر القيم بل ليجمعها للحقل (Product_S_N) أي (جدول جديد عن كل جدول من الجدولين السابقين ).
ومن هاذين الجدولين الجديدين يقوم بتطبيق خاصية (INNER JOIN) مع خاصية الجمع للحقيلن المطلوبين فتحصل على الهدف،،
الحل الأفضل المقدم من الأستاذ طه
كود :
CREATE TABLE #ReceivedTable (SN INT, Qty INT)
CREATE TABLE #OutgoingTable (SN INT, Total INT)
INSERT INTO #ReceivedTable
SELECT Product_S_N AS SN,
Quantity AS Qty
FROM TBL_Products_Received_Details
INSERT INTO #OutgoingTable
SELECT Product_S_N AS SN,
SUM(Quantity) AS Total
FROM TBL_Outgoing_Products_Details
GROUP BY Product_S_N
SELECT #ReceivedTable.SN AS 'Product SN',
#ReceivedTable.Qty AS 'Total Received',
#OutgoingTable.Total AS 'Total Outgoing'
FROM #ReceivedTable
INNER JOIN #OutgoingTable
ON #OutgoingTable.SN = #ReceivedTable.SNكود :
CREATE TABLE #OutgoingTable (SN INT, Total INT)
INSERT INTO #OutgoingTable
SELECT Product_S_N AS SN,
SUM(Quantity) AS Total
FROM TBL_Outgoing_Products_Details
GROUP BY Product_S_N
SELECT TBL_Products_Received_Details.Product_S_N AS 'Product SN',
TBL_Products_Received_Details.Quantity AS 'Total Received',
#OutgoingTable.Total AS 'Total Outgoing'
FROM #OutgoingTable
INNER JOIN TBL_Products_Received_Details
ON TBL_Products_Received_Details.Product_S_N = #OutgoingTable.SN
