在mysql中将多行数据转换为列

在mysql中将多行数据转换为列,mysql,select,Mysql,Select,spid 6和spid 5没有10月18日的数据,但仍然应该显示尝试做正确连接和正确外部连接似乎都不起作用 像这样使用: 像这样使用: 这是有效的。。。。然而,我只是想知道我是否有一个join语句到另一个包含sp_id详细信息的表…并说我在该表中有5个不同的sp_id。。。如何修改查询…添加与上述查询不匹配/命中的sp_id,并添加一个0,例如2012年10月18日| 0,1,1,0,0 | 5,4,3,2,1嘿,结果有点不符,应该为SCB和lal用户提供lal日期,包括null…这很有效。。。

spid 6和spid 5没有10月18日的数据,但仍然应该显示尝试做正确连接和正确外部连接似乎都不起作用

像这样使用:

像这样使用:


这是有效的。。。。然而,我只是想知道我是否有一个join语句到另一个包含sp_id详细信息的表…并说我在该表中有5个不同的sp_id。。。如何修改查询…添加与上述查询不匹配/命中的sp_id,并添加一个0,例如2012年10月18日| 0,1,1,0,0 | 5,4,3,2,1嘿,结果有点不符,应该为SCB和lal用户提供lal日期,包括null…这很有效。。。。然而,我只是想知道我是否有一个join语句到另一个包含sp_id详细信息的表…并说我在该表中有5个不同的sp_id。。。如何修改查询…添加与上述查询不匹配/命中的sp_id,并添加一个0,例如2012年10月18日| 0,1,1,0,0 | 5,4,3,2,1嘿,结果有点不符,应该为SCB和lal用户提供lal日期,包括null…使用
GROUP_CONCAT(IFNULL(总计,0))
获取外部联接中没有匹配数据的行的
0
。@barmer您是否可以编写查询并显示它。。。我累了把一个外部连接。。。“在l.sp_id=s.sp_id上作为s的外部联接销售人员”,它给出了一个错误使用
GROUP_CONCAT(IFNULL(total,0))
为外部联接中没有匹配数据的行获取
0
。@barmer您可以编写查询并显示它吗。。。我累了把一个外部连接。。。“在l.sp_id=s.sp_id上以s的身份加入销售人员”,它给出了一个错误
SELECT 
  Day, 
  month, 
  year,
  GROUP_CONCAT(total), 
  GROUP_CONCAT(SP_ID)
FROM
(
    SELECT 
      DATE_FORMAT(l.act_date, '%d') AS DAY, 
      DATE_FORMAT(l.act_date, '%M') AS MONTH,
      EXTRACT(YEAR FROM l.act_date) AS YEAR, 
      COUNT(*) as total,l.sp_id 
    FROM lead_activity2 as l
    right outer join salesperson as s on l.sp_id=s.sp_id
    WHERE l.act_name='scb' 
      AND ((l.act_date>='2012-09-07 13:03:27' ) 
      AND (l.act_date<= '2012-11-07 13:03:27')) 
    GROUP BY MONTH, YEAR, DAY, l.sp_id 
    ORDER BY YEAR DESC, MONTH DESC, DAY DESC, l.sp_id DESC
) t GROUP BY day, month, year
18 | october | 2012 | 0,0,1,1 | 6,5,4,3
SELECT 
  Day, 
  month, 
  year,
  GROUP_CONCAT(total), 
  GROUP_CONCAT(SP_ID)
FROM
(
    SELECT 
      DATE_FORMAT(l.act_date, '%d') AS DAY, 
      DATE_FORMAT(l.act_date, '%M') AS MONTH,
      EXTRACT(YEAR FROM l.act_date) AS YEAR, 
      COUNT(*) as total,l.sp_id 
    FROM lead_activity2 as l 
    WHERE l.act_name='scb' 
      AND ((l.act_date>='2012-09-07 13:03:27' ) 
      AND (l.act_date<= '2012-11-07 13:03:27')) 
    GROUP BY MONTH, YEAR, DAY, l.sp_id 
    ORDER BY YEAR DESC, MONTH DESC, DAY DESC, l.sp_id DESC
) t GROUP BY day, month, year
SELECT 
  Day, 
  month, 
  year,
  GROUP_CONCAT(total) Total, 
  GROUP_CONCAT(SP_ID) 'List of sp_ids'
FROM
(
  SELECT
    DATE_FORMAT(l.act_date, '%d') AS DAY, 
    DATE_FORMAT(l.act_date, '%M') AS MONTH, 
    EXTRACT(YEAR FROM l.act_date) AS YEAR, 
    COUNT(*) as total,
    IFNULL(s.sp_id , 0) sp_id
  FROM lead_activity2 as l 
  LEFT JOIN salesperson s ON l.sp_id = s.sp_id
  WHERE l.act_name='scb' 
    AND ((l.act_date>='2012-09-07 13:03:27' )
    AND (l.act_date<= '2012-11-07 13:03:27')) 
  GROUP BY MONTH, YEAR,DAY,s.sp_id 
) t
ORDER BY YEAR DESC, 
         MONTH DESC, 
         DAY DESC, 
         sp_id DESC