当前位置:首页 » 编程语言 » sql纵表怎么查询
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sql纵表怎么查询

发布时间: 2022-11-12 06:12:03

sql语句多表查询

select aa.name 姓名,aa.type 人员类别,nvl(b.value,0) 提成,nvl(b1.value) 基本工资 (select a.name name,(case when a.stafftype=1 then 装卸工 when a.stafftype=2 then 维修工
else 职员 end ) type,a.id aid,c.projectsname pname from ba_staff_info a ,wage_project c where a.userid=c.userid) aa
left join wage_info b on b.staffid=aa.aid and aa.pname='提成'
left join wage_info b1 on b1.staffid=aa.aid and aa.pname='基本工资'
.......
下面以此类推吧,我的思想是纵表转横表,希望对你有帮助,谢谢!

❷ 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数据库中 "纵表" 的数据如何修改

这个你程序运行到修改这里应该把数据库中的数据相应的读写到文本框内
(文本框内的相应验证要有哦)按确定时按照文本框及标签的顺序进行update
如update table set 利率=0.1 where 类别='零存整取1年'
你标签显示的字不会是固定的吧,可以改成数据库读取的啊

❹ sql多表查询的问题

select aa.name 姓名,aa.type 人员类别,nvl(b.value,0) 提成,nvl(b1.value) 基本工资 (select a.name name,(case when a.stafftype=1 then 装卸工 when a.stafftype=2 then 维修工
else 职员 end ) type,a.id aid,c.projectsname pname from ba_staff_info a ,wage_project c where a.userid=c.userid) aa
left join wage_info b on b.staffid=aa.aid and aa.pname='提成'
left join wage_info b1 on b1.staffid=aa.aid and aa.pname='基本工资'
.......
下面以此类推吧,我的思想是纵表转横表,希望对你有帮助,谢谢!

❺ sql竖表数据批量插入到横表中 注意是要插入到表中,不单单是查询出来

declare @idx int,@colName varchar(50),@tableID int,@sql varhcar(2000)

select @tableID=id from sysobjects where name='横表名'
set @idx=1
set @colName='Marks'+convert(varchar,@idx)
while(if exists(select * from sysocolumns where id=@tableID and name=@colName))
begin
set sql='insert into 纵表 select stuno,stuname,‘+@colName+’from 横表'
exec(@sql)
set @idx=@idx+1
set @colName='Marks'+convert(varchar,@idx)
end
没有调试,直观的基本上就是这个写法,复杂点的你可以单独再建个要需读取的列名表,循环取列名拼SQL再执行。
或者再写的复杂点,循环用union拼接select的部分
以上是针对类似问题的通用方案,适合列很多的情况。

如果仅限于上边的例 子不做任何扩展,最死的写法就是
insert into 纵表
from select * from(select stuno,stuname,marks1 from 横表
union select stuno,stuname,marks2 from 横表
union select stuno,stuname,marks3 from 横表
)t

当然如果直接查询生成表,也可以用select ...into的写法

❻ SQL sever中将横表转纵表时的这段代码是什么意思,可以详细解释一下吗

查询每个 name 中 语文 的最大 result 值,如果 语文 的 result 没有值,则返回0;
其他数学、物理原理一样;

❼ sql server 纵表转横表

如果单纯是你如上数据的话这样:

创建表:

createtablet
(idint,
orderidint,
prfnoint,
prfidvarchar(10));


insertintotvalues(16385,171202,1,'FB065_1');
insertintotvalues(16385,171202,2,'FB065_06');
insertintotvalues(16385,171202,3,'FB065_06');
insertintotvalues(16385,171202,4,'FB065_06');

insertintotvalues(16386,171202,1,'FB065_1');
insertintotvalues(16386,171202,2,'FB065_06');
insertintotvalues(16386,171202,3,'FB065_06');
insertintotvalues(16386,171202,4,'FB065_06');

执行:

selectid,orderid,
max(casewhenprfno=1thenprfidend)prfid1,
max(casewhenprfno=2thenprfidend)prfid2,
max(casewhenprfno=3thenprfidend)prfid3,
max(casewhenprfno=4thenprfidend)prfid4
fromtgroupbyid,orderid

结果:

如果需求复杂的话,就要改别的方法了。

❽ plsql 中查询时 怎样让查询结果 纵表显示

plsql的查询要求列示固定的,类型也是一样的,所以你的要求可以在外部应用程序实现

❾ mysql纵表转横表

分两次进行不同的查询就可以实现了

  1. 先查出组员信息,比如组员数量、文章总数、评论总数等

  2. 再查出组长信息

  3. 两个查询一合并就可以了

SQL角本如下:

selecta.用户名组长,b.组员数量,b.文章总数,b.评论总数
from(select编号,用户名fromtable_namewhere角色='组长')a,--找组长信息
(select组长,
count(1)组员数量,
sum(文章)文章总数,
sum(评论)评论总数
fromtable_name
where组长isnotnull
groupby组长)b--找组员信息
wherea.编号=b.组长

❿ SQL中的统计加横表转纵表

根本没涉及横纵。
select a.*,b.军人人数,c.武警人数 from
(select 所在位置,count(*) as 警察人数 from 表 where 职务='警察' group by 位置) as a left jion
(select 所在位置,count(*) as 军人人数 from 表 where 职务='军人' group by 位置) as b
on a.所在位置=b.所在位置 left jion
(select 所在位置,count(*) as 武警人数 from 表 where 职务='武警' group by 位置) as c on a.所在位置=c.所在位置