最近有一個需球要將資料用v-chart畫出堆疊圖,但資料sql table原本是長這樣

飲料店 區域 人數
CXCX 台北 5
CXCX 桃園 4
CXCX 新北 2
XO嵐 台北 10
XO嵐 桃園 4
XO嵐 新北 7
清X 台北 3
清X 桃園 4
清X 新北 10

要轉成樞紐資料,變成這樣

飲料店 台北 桃園 新北
CXCX 5 4 2
XO嵐 10 4 7
清X 3 4 10

接著用sql語法組動態產生的話會需要這樣寫

SET SESSION  GROUP_CONCAT_MAX_LEN = 10000000;
SET @sql = NULL;
SELECT GROUP_CONCAT(DISTINCT 
                   CONCAT('SUM(CASE WHEN c.area = "', c.area,'" AND ',
                        (CASE WHEN c.total_area IS NOT NULL
                        THEN CONCAT('c.total_area = ',c.total_area)
                        ELSE NULL END),
                        ' THEN c.total_area else 0 end) AS ','"',
            c.shop_name,'_',c.area,'"'
                        )
                )
INTO @sql
FROM (SELECT b.shop_name,b.area,COUNT(b.area) total_area 
                FROM drink_shop b
                WHERE b.shop_name IS NOT NULL
                GROUP BY b.shop_name,b.area) c;
                                
SET @sql = CONCAT('SELECT c.shop_name, ', @sql,
                                                ' FROM (SELECT b.shop_name,b.area,
                        COUNT(b.area) total_area
                                                FROM drink_shop b
                                                WHERE b.shop_name IS NOT NULL
                                                GROUP BY b.shop_name,b.area) c
                                   GROUP BY c.shop_name');
                                                
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

這邊有一個很重要的點!!

如果你GROUP_CONCAT組出來的字串很長一定要先設定GROUP_CONCAT_MAX_LEN的長度

預設是1024個字元,一開始我沒注意到一直ERROR,後來SELECT出來看才知道超過1024結果字元都被截斷...

 

文章標籤

小小工程師林可可 發表在 痞客邦 留言(0) 人氣()

最近遇到要怎麼將Table的欄位凍結,後來找到只用CSS就可以做到我要的效果了!!!

Example:

文章標籤

小小工程師林可可 發表在 痞客邦 留言(0) 人氣()

今天要來介紹使用Vue實作出表格裡的欄位選項被選擇時會改變顏色

 

文章標籤

小小工程師林可可 發表在 痞客邦 留言(0) 人氣()

前言

因為需求需要將2個時間的小時跟分鐘作相減,塞進另一個欄位裡大概是長這樣

08:30 - 00:15 = 08:15

文章標籤

小小工程師林可可 發表在 痞客邦 留言(0) 人氣()

這是我昨天開發時所遇到的問題,因為需求關係,所以將參數(id)儲存像table2

Table1

文章標籤

小小工程師林可可 發表在 痞客邦 留言(0) 人氣()