[ad_1]
Saya memiliki tabel berisi partno,lokasi, col1,col2,measur1,measure2,measure3. Berdasarkan Measure3 harus menampilkan 100 catatan teratas.
masalahnya adalah tabel memuat data dua bulan. misalnya. pemuatan data Januari + Februari. berdasarkan partno, lokasi, jika ada catatan duplikat harus mengambil catatan terbaru. dalam kueri sql berfungsi. dalam kueri sql menjumlahkan data dua bulan, mis. jan =des+jan, feb =feb+jan, memberi peringkat pada mereka dan mengambil peringkat 1. dengan cara ini mendapatkan rekor terbaru. Bagaimana hal itu dicapai dalam power bi menggunakan dax. tidak ada tabel atau kolom tanggal. memiliki bulan. misalnya: nov2023=23, dec2023=24, jan2024=25, feb2024=26, mar2024=27 dan seterusnya.
memiliki alat pengiris partno, lokasi. dan di tabel harus menunjukkan nomor seri 1 hingga 100 untuk catatan tersebut.
Apa yang saya coba:
dibuat untuk menampilkan 50 teratas. tidak apa-apa, tetapi yang diperlukan hanyalah mendapatkan rekor terbaru.
Solusi 1
Anda benar-benar perlu mengubah DB Anda untuk mencapai hal ini dengan cara apa pun yang berarti: menyimpan data berdasarkan tanggal dalam string selalu merupakan ide yang buruk dan perbandingan string selalu didasarkan pada pasangan karakter pertama yang berbeda – karakter berikutnya bahkan tidak diperhatikan. Jadi urutannya adalah:
apr2022 apr2023 aug2022 aug2023 dec2022 dec2023 feb2022 feb2023 jan2022 jul2022 jul2023 jun2022 jun2023 mar2022 mar2023 may2022 may2023 nov2022 nov2023 oct2022 oct2023 sep2022 sep2023
Itu sangat tidak berguna.
Meskipun mungkin untuk melakukannya, dibutuhkan banyak usaha – dan keberuntungan: satu nama bulan Perancis atau Jerman akan mengacaukan kode Anda misalnya.
Fungsi CAST memungkinkan Anda melakukannya:
CAST('oct2023' AS DATE)
Akan memberi Anda 01-10-2023 tetapi itu akan menambah banyak pemrosesan dan kerumitan pada kueri Anda – semuanya – dan tetap tidak akan memberi Anda urutan yang Anda perlukan dalam setiap bulan karena data Anda tidak memuatnya: semua tanggal akan menjadi tanggal pertama setiap bulan. Dan itu akan mencapai kinerja serta jumlah baris Anda bertambah.
Paling tidak, tambahkan kolom stempel waktu (DATETIME atau DATETIME2) ke DB Anda dan default ke waktu penyisipan (dalam UTC berdasarkan preferensi) dan gunakan itu alih-alih sampah berbasis string yang Anda miliki saat ini.
[ad_2]
コメント