Jumlah data 2 bulan dan untuk menampilkan data bulan terbaru, 50 teratas

pemrograman


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:

SQL
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.

コメント

タイトルとURLをコピーしました