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
这叫交叉查询,语句这么写:TRANSFORM StDev(表.字段名) AS 字段名之值
SELECT 表.字段名, StDev(表.字段名) AS [计数]
FROM 表
GROUP BY 表.行标题字段
PIVOT 表.列标题字段
一定要主要的是:要有行标题、列标题、值三个主要字段
我仅提供思路给你,至于其它单位,可以单独摘录出来,union allselect 始发地 目的地 起步价,sum(case when 区间 >0 and 区间 <= 20 then 单位价格 else '' end) '0-20(公斤)' ,
sum(case when 区间 >20 and 区间 <= 50 then 单位价格 else '' end) '20-50(公斤)' ,
sum(case when 区间 >50 and 区间 <= 100 then 单位价格 else '' end) '50-100(公斤)' from (你的sql语句) t group by t.始发地 ,t.目的地 ,t.起步价
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)