① sql 里面怎么把竖表变成横表
select 姓名,sum(case when 科目='数学' then 分数 end) as 数学,sum(case when 科目='语文' then 分数 end) as 语文,sum(case when 科目='英语' then 分数 end) as 英语 from 表名
group by 姓名
② sql 横表变竖表 动态语句怎么写
1、首先 日期没有出现在Group里
2、其次,组成动态的【,isnull(sum(...))】没有去掉最前面的那个逗号
3、感觉这个语句肯定不会执行成功,最好你把表结构给出,并且给出示例结果来。
③ SQL中内容都为字符型的竖版表转横版,如何实现
Word默认为一节,而一节的页面格式是相同的,若想把一个WORD文件中的每一页随意设置成横版或是竖版,必须将其设置为单独一节,这样就可以单独设置了。
假设有一个10页文档,想让其中第3页为横板,设置步骤:
1、将光标放在第3的首位置,单击页面布局---->分隔符---->分节符---->下一页,如图所示;
2、将光标放在第3页的尾部,重复上面的操作上,使第3页成为单独一节;
3、光标放在第3页,单击页面布局---->纸张方向---->横向即可,如图所示。
④ sql如何自动实现更新,竖表变横表,是要用触发器还是别的方法实现,具体代码如何写
----------这个问题要创建视图得到你想要的结果需要做一些处理
----------我这里用oracle为例,从建表开始
----创建测试表
droptabletest_1;
createtabletest_1
(gidvarchar(10),
gdescvarchar(100),
ac_datedate,
sale_moneydecimal(18,2),
sale_numdecimal(18,2)
);
-----插入测试数据
insertintotest_1
select'1001','A',to_date('2018/3/1','YYYY/MM/DD'),1000,500fromal
unionall
select'1002','B',to_date('2018/3/1','YYYY/MM/DD'),2000,600fromal
unionall
select'1003','C',to_date('2018/3/1','YYYY/MM/DD'),3000,700fromal
unionall
select'1001','A',to_date('2018/3/2','YYYY/MM/DD'),4000,800fromal
unionall
select'1002','B',to_date('2018/3/2','YYYY/MM/DD'),5000,900fromal
unionall
select'1003','C',to_date('2018/3/2','YYYY/MM/DD'),6000,1000fromal
unionall
select'1001','A',to_date('2018/3/3','YYYY/MM/DD'),7000,1100fromal
unionall
select'1002','B',to_date('2018/3/3','YYYY/MM/DD'),8000,1200fromal
unionall
select'1003','C',to_date('2018/3/3','YYYY/MM/DD'),9000,1300fromal
;
----创建视图
createviewv_test
as
select*from(
select
gid商品编号
,gdesc商品名称
,cast(SUM(casewhenac_date=to_date('2018/3/1','YYYY/MM/DD')
thensale_money
else0
end)asvarchar(20))"2018/3/1金额"
,cast(SUM(casewhenac_date=to_date('2018/3/2','YYYY/MM/DD')thensale_money
else0
end)asvarchar(20))"2018/3/2金额"
,cast(SUM(casewhenac_date=to_date('2018/3/3','YYYY/MM/DD')thensale_money
else0
end)asvarchar(20))"2018/3/3金额"
,cast(SUM(casewhenac_date=to_date('2018/3/1','YYYY/MM/DD')thensale_num
else0
end)asvarchar(20))"2018/3/1数量"
,cast(SUM(casewhenac_date=to_date('2018/3/2','YYYY/MM/DD')thensale_num
else0
end)asvarchar(20))"2018/3/2数量"
,cast(SUM(casewhenac_date=to_date('2018/3/3','YYYY/MM/DD')thensale_num
else0
end)asvarchar(20))"2018/3/3数量"
fromtest_1
groupbygid,gdesc
UNIONALL
SELECT''商品编号
,''商品名称
,'销售额'"2018/3/1金额"
,'销售额'"2018/3/2金额"
,'销售额'"2018/3/3金额"
,'销售量'"2018/3/1数量"
,'销售量'"2018/3/2数量"
,'销售量'"2018/3/2数量"
fromal
)A
orderby商品编号;
-----查询该视图信息,看看是否是想要的结果
select*fromv_test;
⑤ SQL竖表转换为横表,跪求大侠帮忙!
建表及插入数据
createtablet(姓名varchar(10),课程varchar(10),分数int)
insertintotvalues('张三','语文',74)
insertintotvalues('张三','数学',83)
insertintotvalues('张三','物理',93)
insertintotvalues('李四','语文',74)
insertintotvalues('李四','数学',84)
insertintotvalues('李四','物理',94)
执行语句
select姓名,
'语文'课程1,sum(casewhen课程='语文'then分数else0end)成绩1,
'物理'课程2,sum(casewhen课程='物理'then分数else0end)成绩2,
'数学'课程3,sum(casewhen课程='数学'then分数else0end)成绩3
fromt
groupby姓名
运行结果
⑥ SQL 竖表 转 横表
sql case then 函数
⑦ SQL 如何查询时 竖着的数据 横着显示
你这个是将纵表转换为横表,例如如下数据:
'wangming', 'shuxue', 100
'wangming', 'yuwen', 90
'wangming', 'yingyu', 140
可以使用如下语句处理:
select a.v_name,a.v_score shuxue,b.v_score yuwen,c.v_score yingyu from temp_1 a,temp_1 b,temp_1 c
where a.v_name=b.v_name
and a.v_name=c.v_name
and a.v_name='wangming'
and a.v_course='shuxue'
and b.v_course='yuwen'
and c.v_course='yingyu';
⑧ SQL 竖表变横表,自适应的,谁能帮看看。
用sql本身难以实现。 你可以对生成的竖表(转成csv格式 或 txt 格式)文件,再用pascal 或 c 语言编制转换程序 进行后处理。
⑨ SQL中竖表变横表及统计功能实现的问题
在源表加一列月份,输入月份值。
select
[部门],
[费用项目],
sum(casewhensubstring([日期],5,2)='01'then[金额]else0end)as[1月总],
sum(casewhensubstring([日期],5,2)='02'then[金额]else0end)as[2月总],
sum(casewhensubstring([日期],5,2)='03'then[金额]else0end)as[3月总],
sum(casewhensubstring([日期],5,2)='04'then[金额]else0end)as[4月总],
sum(casewhensubstring([日期],5,2)='05'then[金额]else0end)as[5月总],
sum(casewhensubstring([日期],5,2)='06'then[金额]else0end)as[6月总],
sum(casewhensubstring([日期],5,2)='07'then[金额]else0end)as[7月总],
sum(casewhensubstring([日期],5,2)='08'then[金额]else0end)as[8月总],
sum(casewhensubstring([日期],5,2)='09'then[金额]else0end)as[9月总],
sum(casewhensubstring([日期],5,2)='10'then[金额]else0end)as[10月总],
sum(casewhensubstring([日期],5,2)='11'then[金额]else0end)as[11月总],
sum(casewhensubstring([日期],5,2)='12'then[金额]else0end)as[12月总]
fromtableA
groupby[部门],[费用项目]
⑩ 竖表转横表sql语句中的sum求出来的怎么是int类型
select
姓名,sum(case when 科目='数圆橡学' then 分数 end) as 数学,sum(case when 科目='语文' then
分数橘蚂旁 end) as 语文,sum(case when 科目='英语' then 分数 end) as 英语物陪 from 表名
group by 姓名