有這樣一個需求,數據存放在excel中,需要進行分類、累加、求和操作,最后需要根據自定義查詢條件,展現到頁面上,如果用人工進行分類計算,在數據量很大的情況下,工作量可想而知。
excel中的格式如下:
編號,項目編碼,項目名稱,類別代碼,類別名稱,子類別代碼,子類別名稱,有效數量,無效數量,...等,需要按一定的規則分類別統計,類別有五種,分別為01(管理)、02(服務)、03(農業)、04(工業)、05(3C),其中子類別中,A開頭的歸屬于01, C開頭的歸屬于02,B02、B04開頭的歸屬于03,B03、B05的歸屬于04,B01的歸屬于05
我的思路通過java解析excel把數據導入到mysql中,再利用sql進行統計,如下
SELECT
t.inst_code,
t.inst_name,
CASE
WHEN LEFT (t.type_code, 1) = 'A' THEN
'01'
WHEN LEFT (t.type_code, 1) = 'C' THEN
'02'
WHEN LEFT (t.type_code, 3) = 'B02'
OR LEFT (t.type_code, 3) = 'B04' THEN
'03'
WHEN LEFT (t.type_code, 3) = 'B03'
OR LEFT (t.type_code, 3) = 'B05' THEN
'04'
ELSE
'05'
END ,
SUM(t.effective_num)
FROM
tbl_temp_auth_num_statics t
GROUP BY
t.inst_code,
t.inst_name,
CASE
WHEN LEFT (t.type_code, 1) = 'A' THEN
'01'
WHEN LEFT (t.type_code, 1) = 'C' THEN
'02'
WHEN LEFT (t.type_code, 3) = 'B02'
OR LEFT (t.type_code, 3) = 'B04' THEN
'03'
WHEN LEFT (t.type_code, 3) = 'B03'
OR LEFT (t.type_code, 3) = 'B05' THEN
'04'
ELSE
'05'
END
查詢的結果如下:
image.png