簡體   English   中英

GROUP_CONCAT 在不同的列中拆分 MYSQL

[英]GROUP_CONCAT split in different columns MYSQL

我正在使用 TABLE,需要邏輯幫助此查詢:

SELECT DATE_FORMAT(tran_date, '%M %Y') AS month_name, 
       SUM(IF(c.ctype = 4, gl.amount * -1, 0)) AS sales,
       GROUP_CONCAT(DISTINCT(d.name)) AS d_name
FROM gl_trans AS gl, company_chart_masters AS a, 
     company_chart_types AS t, company_chart_classes AS c, dimensions as d   
WHERE (c.ctype = 4 OR c.ctype = 5) AND
      d.id = gl.dimension2_id AND
      gl.account = a.account_code AND
      a.account_type = t.id AND
      t.class_id = c.id AND
      DIMENSION2_id = gl.dimension2_id
GROUP BY month_name
ORDER BY month_name DESC

產生這個結果:

查詢結果

如您所見,查詢的 output 有 3 個 coloum month_name salepos的 pos 列用逗號分隔但我現在想要將 pos 拆分為不同的列(因子 matab,Rawalpindi matab,...)。

我的第二個問題是,我還拆分了銷售列,就像拆分pos列一樣,並相應地顯示銷售,並且這個銷售列在拆分后也顯示在不同的列中。

有沒有其他方法可以拆分結果並顯示列和同一行中的每個值? 在同樣的結果?

預期結果:

**Month_name**,          **Factor_Matab**,          **Rawalpindi_Matab** 
feb 2020,                  25000,                     78236
mar 2020,                  26366,                     82367

由於我是堆棧溢出的新手,所以我不知道如何以表格形式顯示此預期結果

為了獲得您的期望,您應該使用pivot table模式:

SELECT 
    month_name,
    -- pivot table
    SUM(IF(dimension = 'Factor_Matab', sales, 0)) AS Factor_Matab,
    SUM(IF(dimension = 'Rawalpindi_Matab', sales, 0)) AS Rawalpindi_Matab
FROM (
    -- Select data grouped by month and dimension as tmp
    SELECT 
        DATE_FORMAT(tran_date, '%M %Y') AS month_name, 
        d.name AS dimension,
        SUM(IF(c.ctype = 4, gl.amount * -1, 0)) AS sales
    FROM 
        gl_trans AS gl, 
        company_chart_masters AS a, 
        company_chart_types AS t, 
        company_chart_classes AS c, 
        dimensions as d   
    WHERE (c.ctype = 4 OR c.ctype = 5) AND
        d.id = gl.dimension2_id AND
        gl.account = a.account_code AND
        a.account_type = t.id AND
        t.class_id = c.id AND
        DIMENSION2_id = gl.dimension2_id
    GROUP BY month_name, d.name
) tmp
-- group tmp table by month
GROUP BY month_name 
ORDER BY month_name DESC;

暫無
暫無

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

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