البرمجة

تحويل بيانات SQL من صفوف إلى أعمدة باستخدام UNPIVOT

بالطبع، يمكنني مساعدتك في كتابة استعلام يحقق النتائج التي ترغب في عرضها. في البداية، يجب علينا استخدام العبارة “UNPIVOT” لتحويل البيانات من الصفوف إلى أعمدة. فيما يلي استعلام SQL يحقق هذا:

sql
SELECT Engine_No, Date, Process, Bolt_No AS Bolt_No1, B1Value1, B1Value2, B1Value3 FROM YourTableName UNPIVOT ( B1Value1 FOR Value IN (B1Value1, B2Value1, B3Value1, B4Value1) ) AS Unpivoted1 UNPIVOT ( B1Value2 FOR Value IN (B1Value2, B2Value2, B3Value2, B4Value2) ) AS Unpivoted2 UNPIVOT ( B1Value3 FOR Value IN (B1Value3, B2Value3, B3Value3, B4Value3) ) AS Unpivoted3 WHERE RIGHT(Value, 1) = RIGHT(Bolt_No, 1);

سيقوم هذا الاستعلام بفك الصفوف إلى أعمدة بناءً على القيم المشتركة في أرقام البراغي (Bolt_No). يمكنك استبدال “YourTableName” بالاسم الفعلي للجدول الخاص بك.

يجب عليك تكرار الجزء المتعلق بـ “UNPIVOT” لكل من الأعمدة التي تريد تحويلها. يمكنك أيضًا تخصيص العبارة حسب احتياجاتك.

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

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

تفضل! لدينا هنا استعلام SQL الذي يحقق النتائج المطلوبة ونقدم بعض المعلومات الإضافية حول الطريقة التي يعمل بها الاستعلام:

sql
SELECT Engine_No, Date, Process, SUBSTRING(Value, 1, LEN(Value) - LEN(RIGHT(Value, CHARINDEX('Value', REVERSE(Value)) - 1))) AS Bolt_No, B1Value1, B1Value2, B1Value3 FROM YourTableName UNPIVOT ( B1Value1 FOR Value IN (B1Value1, B2Value1, B3Value1, B4Value1) ) AS Unpivoted1 UNPIVOT ( B1Value2 FOR Value IN (B1Value2, B2Value2, B3Value2, B4Value2) ) AS Unpivoted2 UNPIVOT ( B1Value3 FOR Value IN (B1Value3, B2Value3, B3Value3, B4Value3) ) AS Unpivoted3 WHERE RIGHT(Value, 1) = RIGHT(Bolt_No, 1);

التغيير الرئيسي في هذا الاستعلام هو استخدام الدالة SUBSTRING وLEN لاستخراج رقم البرغي (Bolt_No) من العمود Value. يتم ذلك عن طريق حساب طول النص الكلي وطول الجزء الذي يحتوي على “Value” من نهاية النص. هذا يعني أننا نستخرج الجزء الذي يسبق “Value” ويمثل رقم البرغي.

بهذه الطريقة، يمكنك الحصول على نتائج محددة بشكل أفضل وأكثر دقة. يرجى تغيير “YourTableName” بالاسم الفعلي للجدول الخاص بك وضبط الاستعلام وفقًا لاحتياجاتك الخاصة.

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