Mysql中笔试问题解决

一、问题提出

1、表结构rru如下

  Mysql中笔试问题解决_第1张图片

 2、要求查询显示结果为

  Mysql中笔试问题解决_第2张图片


二、问题解决

   方式一:

     SELECT DISTINCT c.`year` AS YEAR,
(SELECT amcount FROM product WHERE YEAR= c.`YEAR`  AND  MONTH = "1"  )AS m1,
(SELECT amcount FROM product WHERE YEAR = c.`YEAR`  AND  MONTH = "2")  AS m2,
(SELECT amcount FROM product WHERE YEAR = c.`YEAR`   AND  MONTH = "3")AS m3,
(SELECT amcount FROM product WHERE YEAR = c.`YEAR`  AND  MONTH = "4")AS m1#

FROM product  c

   方式二:

     SELECT  YEAR,
SUM(CASE WHEN MONTH='1' THEN amcount END) AS m1,
SUM(CASE WHEN MONTH='2' THEN amcount END) AS m2,
SUM(CASE WHEN MONTH='3' THEN amcount END) AS m3,
SUM(CASE WHEN MONTH='4' THEN amcount END) AS m4#

FROM product GROUP BY year


解释:    case when  then

SELECT            
    case                   -------------如果
    when sex='1' then '男' -------------sex='1',则返回值'男'
    when sex='2' then '女' -------------sex='2',则返回值'女'  
    else 0                 -------------其他的返回'其他’
    end                    -------------结束
from   sys_user            --------整体理解: 在sys_user表中如果sex='1',则返回值'男'如果sex='2',则返回值'女' 否则返回'其他’


你可能感兴趣的:(Mysql中笔试问题解决)