问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

oracle中如何将多个查询结果在一张表中显示

发布网友 发布时间:2022-04-10 09:39

我来回答

7个回答

热心网友 时间:2022-04-10 11:09

可以将你的三个表的查询结果使用union all联合起来,然后使用Oracle的decode函数来查询
select 姓名,
sum(decode(tbname,'表1',人数,null)) 表1人数,
sum(decode(tbname,'表2',人数,null)) 表2人数,
sum(decode(tbname,'表3',人数,null)) 表3人数
from
(select 姓名,count(姓名) 人数,'表1' tbname from 表1 group by 姓名
union all select 姓名,count(姓名),'表2' from 表2 group by 姓名
union all select 姓名,count(姓名),'表3' from 表3 group by 姓名
)
group by 姓名;

热心网友 时间:2022-04-10 12:27

--可以使用sql99语法中的外关联 ,如下
SELECT
CASE WHEN 表1.姓名 IS NOT NULL
THEN 表1.姓名
ELSE CASE WHEN 表2.姓名 IS NOT NULL
THEN 表2.姓名
ELSE CASE WHEN 表3.姓名 IS NOT NULL
THEN 表3.姓名 ELSE '未知'
END
END
END AS 姓名
,表1.人数,表2.人数,表3.人数
FROM 表1 FULL OUTER JOIN
T2 ON 表1.姓名 = 表2.姓名
FULL OUTER JOIN
T3 ON 表1.姓名 = 表3.姓名
--这个方法如果表有n多张的话,名字会写的比较繁琐,但是思路应该没问题
--如果看着麻烦,可以把select和from之间的语句换成 * , 相信你能看懂结果

热心网友 时间:2022-04-10 14:01

给段代码 使用数据库是vs2005自带的sql express。当然 不同的数据库连接字符串不一样 但是GetDataSet(string sql, string tablename)
方法是通用的~参数sql是你sql查询语句 tablename是输出地表明 可以随便添

public static string ConnectionString = "Data Source=.\\SQLEXPRESS;AttachDbFilename=数据库文件路径;Integrated Security=True;Connect Timeout=30;User Instance=True";
public DataSet GetDataSet(string sql, string tablename)
{
DataSet ds = new DataSet();
SqlConnection con = new SqlConnection(DataAccess.ConnectionString);
SqlDataAdapter da = new SqlDataAdapter(sql, con);
try
{
da.Fill(ds, tablename);
if (ds.HasChanges()) da.Update(ds);
}
catch (Exception ex)
{
MessageBox.Show("打开数据库表错误:" + ex.Message, "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information);

}
finally
{

con.Close();
con.Dispose();
da.Dispose();
}
return ds;
}

使用方法 datagridview1.datasource=GetDataSet("select * from student where name="姚明"","table1") //datagridview1当然是你winfrom里的一个datagridview
另外,虚机团上产品团购,超级便宜

热心网友 时间:2022-04-10 15:53

这就是行专列呀
先把这几个结果集union all 合并成一个结果集
对这个结果集用行专列的方式转换就行了

热心网友 时间:2022-04-10 18:01

就是三张表使用全连接的问题
create table wcy_t1(f1 varchar2(30),f2 number);
create table wcy_t2(f1 varchar2(30),f2 number);
create table wcy_t3(f1 varchar2(30),f2 number);
insert into wcy_t1 values('张三',3);
insert into wcy_t1 values('李四',5);
insert into wcy_t1 values('王五',6);
insert into wcy_t2 values('张三',4);
insert into wcy_t2 values('钱二',6);
insert into wcy_t2 values('李四',1);
insert into wcy_t3 values('王五',3);
insert into wcy_t3 values('钱二',2);

select nvl(a.f1,b.f1) f1,a.f2 f10,b.f20,b.f30 from wcy_t1 a
full join (select nvl(b.f1,c.f1) f1,b.f2 f20,c.f2 f30 from wcy_t2 b
full outer join wcy_t3 c on b.f1=c.f1) b
on a.f1=b.f1;
F1 F10 F20 F30
------------------------------ ---------- ---------- ----------
李四 5 1
张三 3 4
王五 6 3
钱二 6 2

热心网友 时间:2022-04-10 20:25

/** Full outer join **/
select nvl(T1.name , nvl(T2.name , T3.name ) ) as 姓名 ,
T1.num 表1人数 ,
T2.num 表2人数 ,
T3.num 表3人数
from T1 full outer join T2 on T1.name = T2.name
full outer join T3 on T1.name = T3.name

热心网友 时间:2022-04-10 23:07

select distinct t.name,sum(num1),sum(num2),sum(num3) from (
select name,num num1,0 num2,0 num3 from b
union
select name,0 num1,num num2,0 num3 from c
union
select name,0 num1,0 num2,num num3 from d) t
group by t.name;
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
...先讲女主的灵魂飘荡了一段时间,然后重生,请问是那本? 拯救者散热器怎么开 电脑如何一键还原系统电脑一键还原怎么操作 神舟笔记本电脑怎么重新设置神舟战神bios恢复出厂设置 神舟电脑恢复出厂设置神舟战神怎么恢复原厂系统 水泥楼梯如何铺木楼梯 家里面楼梯是水泥的不想铺地毯或者地砖还能铺什么 楼梯的水泥台阶上可以铺地板革吗 手机腾讯会议共享屏幕播放视频没声 腾讯会议共享屏幕没声音怎么办 白醋能当清洁剂。醋精,会不会比它更好用? 最新山东2011年高考作文题出来了吗 泡沫之夏第三集 泡沫之夏电视剧03集 泡沫之夏电视剧高清观看地址 电影荒野求生剧情介绍 怎样申请腾讯空间名博! 生活小妙招:媳妇用白醋和小苏打,自制清洁剂,擦东西干净又明亮 湘问直通车是什么样的平台 关于野外生存的一部美国电影 高钢的作品 成龙被去世 凤凰卫视老总是谁?? 求关于社会热点问题的论坛 白醋加小苏打做清洁剂可以擦白色油漆家具吗 华声教育期刊属于国家级吗 我们急需媒体的帮助。焦点访谈,今日说法电话打不通。谁知道长沙最有影响力的媒体是那家? 谁能帮我 伸冤 华声论坛的论坛荣誉 杨紫的娱乐圈好友们都有谁? 娱乐圈有哪些真正的朋友? 马天宇娱乐圈朋友遍布,不缺影视资源的他为何火不起来? win7金蝶安装环境缺少microsoft vm for java,怎么解决? 添加删除程序Microsoft VM for Java 电脑上安装不了Microsoft VM for JAVA VC6.0安装更新Virtual Machine for Java java中vm技术是什么 安装VC 6.0,说不兼容,继续运行程序,出现提示框“更新Microsoft Virtual Machine For Java”更新后重启 Java VM 与VMware Workstation,是两款软件吗? 有什么区别吗? 实在不懂,劳烦各位仔细讲讲?? Java 多线程与for 语句如何结合使用? Java 项目的VM arguments问题 JAVA的for语句结束循环条件中如何使用==符号? 还是有关java的 qq邮箱只在标题栏显示标题,内容显示一小部分 一种变声器,模仿各种明星的,能告诉我名称吗? 怎么用改声器模仿出贾斯丁比伯或明星的声音?就像YY那种 ? 有没有一个可以模仿明星声音的软件? 能否通过操作变声器使自己的声音听起来像某些明星或是声优? 有没有变声器可以变成明星的声音 谁知道怎么把自己的声音在QQ发语音时可以变音成明星的声音,有没有张含韵的变音器 有没有能在YY里把自己声音模仿成明星的声音的软件?最好是打开就能用的! 汽车电瓶没电怎么办,老司机总结的几大完美步骤