Mysql中查询(数据库中的)纵向转(查询结果显示为)横向.

Mysql中查询(数据库中的)纵向转(查询结果显示为)横向.,第1张

1、在mysql环境,创建数据库表,

create table test_data1(id int, name VARCHAR(20), day VARCHAR(20))

2、插入测试数据,

insert into test_data1 values(1,'liu',1)

insert into test_data1 values(2,'liu',3)

insert into test_data1 values(3,'wang',1)

insert into test_data1 values(4,'wang',2)

insert into test_data1 values(4,'wang',4)

3、查询表中数据,select * from test_data1;

4、编写目标sql;

select name, 

     max(case when day=1 then 1 end) d_1,

     max(case when day=2 then 2 end) d_2,

     max(case when day=3 then 3 end) d_3,

     max(case when day=4 then 4 end) d_4

from test_data1 t group by name

如果你的prodid和date是固定的对应关系,每个日期都有proid为1、2、3的三个数数据,那可以这么写

SELECT DATE,

       IFNULL((SELECT total FROM ProS s0 WHERE s0.DATE = w.DATE AND s0.proid = 1), 0) A,

       IFNULL((SELECT total FROM ProS s1 WHERE s1.DATE = w.DATE AND s1.proid = 2), 0) B,

       IFNULL((SELECT total FROM ProS s2 WHERE s2.DATE = w.DATE AND s2.proid = 3), 0) C

FROM   ProS w

GROUP  BY DATE


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/6099511.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-14
下一篇 2023-03-14

发表评论

登录后才能评论

评论列表(0条)

保存