السلام عليكم
اخواني الافاضل
الرجاء المساعدة في كود استعلام كما موضح
وجدت هذه الطريقة وقمت بالتعديل عليها ولكن لم تنجح
كود :
da = New SqlDataAdapter(
"SELECT [ID], [Tech], SUM([Scope]) [Total] " & _
"FROM ( Select * From [ERC_Scope] " & _
" UNION ALL " & _
" SELECT * FROM [HUA_Scope] " & _
"GROUP BY [ID], [Tech] ", connSQLServer)
السلام عليكم
بالامكان استخدام هذا الكود عسى ان ينفعك
كود :
SELECT dbo.tb1.id AS[كود الصنف], dbo.tb1.f2 AS [اسم الصنف], SUM(dbo.tb2.f2) AS [المجموع الاول] FROM dbo.tb1 CROSS JOIN dbo.tb2 GROUP BY dbo.tb1.id, dbo.tb1.f2
وعليكم السلام ورحمة الله وبركاته
بخصوص كود الاستعلام كل ما عليك تطبيق التالى
كود :
SELECT MIN(T1.id) AS id, T1.name, (SELECT SUM(value) AS V1 FROM table1 WHERE name = T1.name GROUP BY name) - (SELECT SUM(value) AS V2 FROM table2 WHERE name = T1.name GROUP BY name) AS value FROM table1 AS T1 INNER JOIN table2 AS T2 ON T1.name = T2.name GROUP BY T1.name
بخصوص كود الاستعلام واتمام الادخال فى table3
فى البداية سيتم حذف عمود الـ id من الاستعلام بما انه عمود ترقيم تلقائي
ويتم تطبيق الكود بالشكل التالى
كود :
INSERT INTO table3 (name, value) SELECT T1.name, (SELECT SUM(value) AS V1 FROM table1 WHERE name = T1.name GROUP BY name) - (SELECT SUM(value) AS V2 FROM table2 WHERE name = T1.name GROUP BY name) AS value FROM table1 AS T1 INNER JOIN table2 AS T2 ON T1.name = T2.name GROUP BY T1.name
المسميات طبقاً للمسميات فى الصورة الموضوع
حتى يتم تسهيلا المور عليك ومعرفة كيفية التعامل وتغيير المسميات لديك
تحياتى لك
وتمنياتى لك التوفيق
مشكورين على سرعة الرد والمساعدة ولكن يضهر خطاء في تنفيد الكود
للعم قاعدة بيانات اكسس
(01-08-18, 02:53 PM)نور الهدى الهدى كتب : [ -> ]مشكورين على سرعة الرد والمساعدة ولكن يضهر خطاء في تنفيد الكود
للعم قاعدة بيانات اكسس
فى البداية كيف قاعدة بيانات اكسس وانت تستخدم
ثانياً الصورة المرفقة تدل ان يوجد اخطاء فى المدخلات
اتمنى ارفاق مشروع مثال مصغر لما تريده ومعه قاعدة البيانات
حتى يتم كتابة الكود اللزم لما هو مرفق بدلاً
من تكرار كتابة عدة اكواد بدون اى نفع
تحياتى لك
وتمنياتى لك التوفيق
[quote pid='124636' dateline='1533140350']
السلام عليكم
فى هذا الكود أرى كما قال الأخ
[b]elgokr [/b]أن فيه خطأ إملائي من حيث نوع قاعدة البيانات وهناك "(" ناقص في نهاية جملة select الثانية
كود :
da = New SqlDataAdapter(
"SELECT [ID], [Tech], SUM([Scope]) [Total] " & _
"FROM ( Select * From [ERC_Scope] " & _
" UNION ALL " & _
" SELECT * FROM [HUA_Scope] " & _
"GROUP BY [ID], [Tech] ", connSQLServer)
حتى يصبح كالتالي:
كود :
da = New DataAdapter(
"SELECT [ID], [Tech], SUM([Scope]) [Total] " & _
"FROM ( Select * From [ERC_Scope] " & _
" UNION ALL " & _
" SELECT * FROM [HUA_Scope] ) " & _
"GROUP BY [ID], [Tech] ", conn)
وتمنياتى لك التوفيق
[/quote]
أنت توهتني بالنتيجة الخاطئة منك منذ البداية بهذه الصورة في ناتج 2g
والصحيح أن 2g يكون 2700
كود :
SELECT [Name], SUM([Value]) AS [Value]
FROM ( SELECT Table1.Name AS [Name],
Table1.Value - Table2.Value AS [Value]
FROM [Table1]
INNER JOIN [Table2]
ON Table1.ID = Table2.ID
) GROUP BY [Name]
(02-08-18, 02:38 AM)GameOver كتب : [ -> ]أنت توهتني بالنتيجة الخاطئة منك منذ البداية بهذه الصورة في ناتج 2g
والصحيح أن 2g يكون 2700
كود :
SELECT [Name], SUM([Value]) AS [Value]
FROM ( SELECT Table1.Name AS [Name],
Table1.Value - Table2.Value AS [Value]
FROM [Table1]
INNER JOIN [Table2]
ON Table1.ID = Table2.ID
) GROUP BY [Name]
مشكورين والكود شغال لكن هناك مشكلة عندما تكون الاضافة أكتر من الخصم لا يقوم بجمع الاضافة يعني عندما يكون ID الجدول الاول غير مطابق للجدول الثاني
الرجاء النظر في الكود وشكرا
هذا مثال لتوضيح النتائج اكتر كما أفاد
[b]elgokr[/b]
مشكورين جميعا
(02-08-18, 05:25 PM)نور الهدى الهدى كتب : [ -> ]لكن هناك مشكلة عندما تكون الاضافة أكتر من الخصم لا يقوم بجمع الاضافة يعني عندما يكون ID الجدول الاول غير مطابق للجدول الثاني
الرجاء النظر في الكود وشكرا
اساسا لم ارى ان استخدام جدولين منطقي
وأنصحك بإعادة النظر في بناء قاعدة البيانات وطريقة التعامل مع البيانات للتلافى هذه المشكلة
أقترح عليك إحدى طريقتين وفي كلاهما الاستغناء عن الجدول الثاني:
الاول: إضافة عمود جديد لنوع القيمة إن كانت مبلغاً أم خصماً.
الثاني: وضع قيمة الخصم بالسالب وهذا الاسهل.
تذكر أن كلا الطريقتين تستخدم جدول واحد فقط.
وبهذا تكون مسئلة التجميع سهلة وخصوصاً استخدام الطريقة الثانية.
(02-08-18, 06:03 PM)GameOver كتب : [ -> ] (02-08-18, 05:25 PM)نور الهدى الهدى كتب : [ -> ]لكن هناك مشكلة عندما تكون الاضافة أكتر من الخصم لا يقوم بجمع الاضافة يعني عندما يكون ID الجدول الاول غير مطابق للجدول الثاني
الرجاء النظر في الكود وشكرا
اساسا لم ارى ان استخدام جدولين منطقي
وأنصحك بإعادة النظر في بناء قاعدة البيانات وطريقة التعامل مع البيانات للتلافى هذه المشكلة
أقترح عليك إحدى طريقتين وفي كلاهما الاستغناء عن الجدول الثاني:
الاول: إضافة عمود جديد لنوع القيمة إن كانت مبلغاً أم خصماً.
الثاني: وضع قيمة الخصم بالسالب وهذا الاسهل.
تذكر أن كلا الطريقتين تستخدم جدول واحد فقط.
وبهذا تكون مسئلة التجميع سهلة وخصوصاً استخدام الطريقة الثانية.
اخي
GameOver
من ظروري استخدام جدول الإضافة وجدول الخصم لان احيانا احتاج كشف الاضافة وكشف الخصم
وعند الجرد احتاج المتوفر والذي يمتل قيمة الاضافة ناقص قيمة الخصم وهذا المطلوب