Rumah >pangkalan data >tutorial mysql >Bagaimanakah saya boleh mengumpulkan Data SQL mengikut Bulan dan Tahun untuk Pelaporan?

Bagaimanakah saya boleh mengumpulkan Data SQL mengikut Bulan dan Tahun untuk Pelaporan?

Mary-Kate Olsen
Mary-Kate Olsenasal
2025-01-05 12:10:43142semak imbas

How Can I Group SQL Data by Month and Year for Reporting?

Mengumpulkan Data SQL mengikut Bulan dan Tahun

Dalam pertanyaan SQL, selalunya perlu untuk mengumpulkan data mengikut bulan dan tahun untuk analisis. Ini melibatkan mencipta lajur baharu yang mewakili gabungan kumpulan yang diingini.

Pertimbangkan pertanyaan berikut:

SELECT MONTH(date) AS Mjesec, SUM(marketingExpense) AS SumaMarketing, SUM(revenue) AS SumaZarada
FROM [Order]
WHERE (idCustomer = 1) AND (date BETWEEN '2001-11-3' AND '2011-11-3')
GROUP BY MONTH(date), YEAR(date)

Pertanyaan ini mengumpulkan data mengikut bulan, menghasilkan output seperti "9" untuk September . Untuk memaparkan bulan dan tahun bersama-sama, kita boleh menggunakan fungsi CAST untuk menukar nilai bulan dan tahun kepada rentetan dan menggabungkannya dengan tanda sempang.

SELECT CAST(MONTH(date) AS VARCHAR(2)) + '-' + CAST(YEAR(date) AS VARCHAR(4)) AS Mjesec, SUM(marketingExpense) AS SumaMarketing, SUM(revenue) AS SumaZarada
FROM [Order]
WHERE (idCustomer = 1) AND (date BETWEEN '2001-11-3' AND '2011-11-3')
GROUP BY CAST(MONTH(date) AS VARCHAR(2)) + '-' + CAST(YEAR(date) AS VARCHAR(4))

Pengubahsuaian ini akan memaparkan keputusan dalam format yang diingini, contohnya, "9-2011".

Sebagai alternatif, kita boleh menggunakan fungsi CAST dengan sifar pendahuluan untuk memastikan konsisten pemformatan:

GROUP BY
  CAST(YEAR(date) AS VARCHAR(4)) + '-' + right('00' + CAST(MONTH(date) AS VARCHAR(2)), 2)

Ini akan menghasilkan output seperti "2011-09".

Atas ialah kandungan terperinci Bagaimanakah saya boleh mengumpulkan Data SQL mengikut Bulan dan Tahun untuk Pelaporan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn