[ad_1]
لدي جدول يحتوي على Partno,location, col1,col2,measur1,measure2,measure3. استنادًا إلى Measure3، يجب أن يُظهر أفضل 100 سجل.
الشيء هو جدول تحميل شهرين من البيانات. على سبيل المثال. تحميل بيانات يناير + فبراير. بناءً على الجزء والموقع، إذا كان هناك أي سجلات مكررة يجب أن تأخذ أحدث سجل. في استعلام SQL العمل. في استعلام SQL جمع بيانات شهرين، أي. jan =dec+jan، feb =feb+jan، الترتيب عليها والحصول على المرتبة الأولى. وبهذه الطريقة تحصل على أحدث سجل. كيف يتم تحقيق ذلك في power bi باستخدام dax. لا يوجد جدول تاريخ أو عمود. وجود شهر. على سبيل المثال:nov2023=23، dec2023=24، jan2024=25، feb2024=26، mar2024=27، وهكذا.
وجود قطاعات القطع والموقع. وفي الجدول يجب إظهار الرقم التسلسلي من 1 إلى 100 لتلك السجلات.
ما حاولت:
تم إنشاء مقياس لإظهار أعلى 50. لا بأس، ولكن يلزم الحصول على أحدث سجل.
الحل 1
أنت بحاجة ماسة إلى تغيير قاعدة البيانات الخاصة بك لتحقيق ذلك بأي طريقة ذات معنى: تخزين البيانات المستندة إلى التاريخ في سلاسل يعد دائمًا فكرة سيئة وتعتمد مقارنات السلاسل دائمًا على أول زوج مختلف من الأحرف – ولا يتم حتى النظر إلى الأحرف اللاحقة. فيكون الترتيب كالتالي:
apr2022 apr2023 aug2022 aug2023 dec2022 dec2023 feb2022 feb2023 jan2022 jul2022 jul2023 jun2022 jun2023 mar2022 mar2023 may2022 may2023 nov2022 nov2023 oct2022 oct2023 sep2022 sep2023
وهو أمر عديم الفائدة إلى حد كبير.
على الرغم من أنه من الممكن القيام بذلك، إلا أنه يتطلب الكثير من الجهد – والحظ: اسم شهر فرنسي أو ألماني واحد سوف يفسد الكود الخاص بك على سبيل المثال.
ستتيح لك وظيفة CAST القيام بذلك:
CAST('oct2023' AS DATE)
سيعطيك 01-10-2023 ولكنه سيضيف الكثير من المعالجة والتعقيد إلى استفساراتك – جميعها – ولن يمنحك الطلب الذي تحتاجه خلال كل شهر لأن بياناتك لا تحتوي عليه: جميع التواريخ ستكون أول الشهر. وسوف يصل إلى الأداء بالإضافة إلى زيادة عدد الصفوف.
على أقل تقدير، أضف عمودًا للطابع الزمني (DATETIME أو DATETIME2) إلى قاعدة البيانات الخاصة بك وقم بتعيينه افتراضيًا على وقت الإدراج (بالتوقيت العالمي المنسق حسب التفضيل) واستخدم ذلك بدلاً من الرسائل غير المرغوب فيها المستندة إلى السلسلة الموجودة لديك حاليًا.
[ad_2]
コメント