البرمجة

تجميع البيانات في SQL Server باستخدام المستويات

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

أولاً، يجب عليك فهم المنطق الذي تحتاج إلى تنفيذه. يتمثل المنطق في تجميع البيانات بناءً على المستوى (Level) المحدد. إذا كان المستوى أكبر من 2، يجب تجميعه تحت المستوى 2. وإذا لم يكن هناك مستوى 2 متوفرًا، فيجب إنشاء مستوى ثاني بناءً على أرقام المستوى 3.

سنقوم بتحقيق ذلك باستخدام استعلام SQL. قد يتطلب ذلك استخدام دوال المعالجة النصية والشرطية.

قد يكون لديك جدول يحتوي على البيانات، لنفترض أن اسم الجدول هو “Table1″، ولديه عمود يحتوي على البيانات التي تحتاج إلى تجميعها وهو “SourceColumn”.

sql
WITH CTE AS ( SELECT SourceColumn, CASE WHEN CHARINDEX('.', SourceColumn, 1 + CHARINDEX('.', SourceColumn, 1)) > 0 THEN LEFT(SourceColumn, CHARINDEX('.', SourceColumn, 1 + CHARINDEX('.', SourceColumn, 1))) ELSE SourceColumn END AS GroupedColumn FROM Table1 ) SELECT MIN(SourceColumn) AS Source, GroupedColumn AS Required FROM CTE GROUP BY GroupedColumn;

هذا الاستعلام يقوم بإنشاء مشتقة مشتركة (Common Table Expression) تُسمى “CTE”، وتقوم بتقديم عمود جديد يسمى “GroupedColumn” يتم من خلاله تجميع البيانات وفقًا للمنطق المحدد. ثم يتم استخدام هذا العمود في استعلام SELECT لتحديد القيم المطلوبة بناءً على التجميع.

تذكر أن تستبدل “Table1” بالاسم الفعلي للجدول الذي تستخدمه، و “SourceColumn” بالاسم الفعلي للعمود الذي تحتوي عليه البيانات.

قمت بتوفير استعلام SQL يتوافق مع متطلباتك، ويجمع البيانات بالشكل المطلوب. يمكنك تنفيذ هذا الاستعلام على قاعدة البيانات الخاصة بك للحصول على النتائج المطلوبة.

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

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

في البداية، يستخدم الاستعلام Common Table Expression (CTE) لتحديد مجموعات البيانات بناءً على المستوى المحدد. يتم ذلك باستخدام دالة CHARINDEX للبحث عن الفاصل (نقطة) في العمود “SourceColumn”. إذا وجدت نقطة ثالثة، فإن الاستعلام يستخدم دالة LEFT لاستخراج الجزء الأول من النص حتى النقطة الثالثة، وإلا فإنه يستخرج النص بأكمله. هذا الجزء يحدد المجموعة التي تنتمي إليها كل قيمة.

ثم، يتم استخدام الاستعلام SELECT الخارجي لتجميع البيانات وفقًا للمجموعات المحددة في CTE. يتم استخدام دالة MIN لاختيار أصغر قيمة في كل مجموعة، ويتم تقديم هذه القيمة كالقيمة المطلوبة في النتيجة.

على سبيل المثال، إذا كان لديك البيانات التالية:

SourceColumn
1
1.1.
1.1.1.
1.1.2.
1.2.1
1.3.
1.3.1.
1.3.2.
1.4.1.

سيقوم الاستعلام بتقديم البيانات التالية كنتيجة:

Source Required
1 1
1.1. 1.1.
1.2.1 1.2.
1.3. 1.3.
1.4.1. 1.4.

يتم تجميع القيم 1.1.1 و1.1.2 تحت المستوى 1.1. والقيمة 1.2.1 تبقى على حالها لأنها تحتوي بالفعل على المستوى 2. بينما يتم تجميع القيم 1.3.1 و1.3.2 تحت المستوى 1.3. ويتم تجميع القيمة 1.4.1. تحت المستوى 1.4.

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

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

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

هذا المحتوى محمي من النسخ لمشاركته يرجى استعمال أزرار المشاركة السريعة أو تسخ الرابط !!