簡體   English   中英

PHP選擇並按日期(月份和年份)以及用戶分組

[英]PHP select and group by date (month and year) as well as user

我有一張桌子,上面有這樣的信息:

id | staff_id | start_date
1  | 14       | 2015-04-02 00:00:00
2  | 16       | 2015-04-15 00:00:00
3  | 14       | 2015-05-31 00:00:00
4  | 12       | 2015-05-04 00:00:00

我想做的是選擇並計算每個工作人員的所有條目,並按月和年對它們進行分組,以便顯示如下:

Staff Member  | 12  | 14  | 16
2015-04       | 0   | 1   | 1
2015-05       | 1   | 1   | 0

誰能幫我弄清楚如何產生這個嗎? 我只是想不出如何為每個工作人員創建一個新列,以及為每個月/年創建一行。

這是一個樞軸查詢,但是由於日期原因而有些復雜:

select date_format(start_date, '%Y-%m') as yyyymm,
       sum(staff_id = 12) as `12`, sum(staff_id = 14) as `14`,
       sum(staff_id = 16) as `16`
from table t
group by yyyymm;

如果您事先不知道職員編號,則需要使用動態SQL。 谷歌“ MySQL動態樞紐”,看看如何做到這一點。

這稱為交叉列表查詢(又稱為數據透視表)。 MySql本機不支持此類轉換。

可能的解決方案:1.以傳統方式按用戶和月份生成計數,然后使用php將數據轉換為最終結果集。 2.使用電子表格程序(例如Excel)根據傳統數據集再次為您進行轉換。 3.在MySql中有多種方法可以執行此操作,請參見link1link2

第二個鏈接是SO鏈接。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM