用一条SQL语句显示所有人员的姓名及所在部门
给定以下两个表:部门ID部门名称1部门12部门23部门34部门4人员ID人员姓名部门ID1姓名112姓名213姓名324姓名435姓名55(1)用一条SQL语句显示所有人...
给定以下两个表:
部门ID 部门名称
1 部门1
2 部门2
3 部门3
4 部门4
人员ID 人员姓名 部门ID
1 姓名1 1
2 姓名2 1
3 姓名3 2
4 姓名4 3
5 姓名5 5
(1)用一条SQL语句显示所有人员的姓名及所在部门,没有部门的用“未标志”代替。
(2)用ASP。NET中的DATAGRID控件,实现以下显示,描述你的思路。
姓名1
部门1 姓名2
部门2 ……
部门3
请前辈赐教! 展开
部门ID 部门名称
1 部门1
2 部门2
3 部门3
4 部门4
人员ID 人员姓名 部门ID
1 姓名1 1
2 姓名2 1
3 姓名3 2
4 姓名4 3
5 姓名5 5
(1)用一条SQL语句显示所有人员的姓名及所在部门,没有部门的用“未标志”代替。
(2)用ASP。NET中的DATAGRID控件,实现以下显示,描述你的思路。
姓名1
部门1 姓名2
部门2 ……
部门3
请前辈赐教! 展开
3个回答
展开全部
数据库表 test 字段id,name,fen,type,目的是按type分组,查询每组最大的fen值。
方法一、select b.id,b.type,b.name,b.fen from
(select type,max(fen) from test group by type ) a,/*利用group by 命令按照type分组查找每组最大的fen列值,查询后所得到的数据定义为表a*/
test b /*将原表test定义为表b*/
where b.type = a.type and b.fen = a.fen /*根据表a取得的数据列再到b表中查询对应的数据行得到最终目的*/
解释:这一方法主要使用了sql多表查询,表的别名思想
方法二:
select id,fen,name from test where fen in(select type,max(fen) from test group by type)
解释:这一方法比较直接,直接根据in引入查询子句
总之,个人感觉第一种方法比较实用,根据两个表相互查询,控制起来比较直观也方便操作;第二种方法很是直接,但是有一点问题,我在实际应用中用top 5控制,分类中type只有4项,在显示的时候有一个分类是重复的。重复之后要取唯一项很是麻烦,所以我直接换用了第一种方法。
实际应用中的一点小心得,有不对的请指教,也欢迎大家来一起讨论,寻找更优的解决方法。
方法一、select b.id,b.type,b.name,b.fen from
(select type,max(fen) from test group by type ) a,/*利用group by 命令按照type分组查找每组最大的fen列值,查询后所得到的数据定义为表a*/
test b /*将原表test定义为表b*/
where b.type = a.type and b.fen = a.fen /*根据表a取得的数据列再到b表中查询对应的数据行得到最终目的*/
解释:这一方法主要使用了sql多表查询,表的别名思想
方法二:
select id,fen,name from test where fen in(select type,max(fen) from test group by type)
解释:这一方法比较直接,直接根据in引入查询子句
总之,个人感觉第一种方法比较实用,根据两个表相互查询,控制起来比较直观也方便操作;第二种方法很是直接,但是有一点问题,我在实际应用中用top 5控制,分类中type只有4项,在显示的时候有一个分类是重复的。重复之后要取唯一项很是麻烦,所以我直接换用了第一种方法。
实际应用中的一点小心得,有不对的请指教,也欢迎大家来一起讨论,寻找更优的解决方法。
参考资料: http://www.qdxkj.com/shownew.aspx?wzid=52
展开全部
0分啊.......只给你第一题的代码好了
select 部门.部门ID,isnull(部门.部门名称,'未标志') ,人员.人员ID,人员.人员姓名
from 部门 right join 人员 on 人员.部门ID = 部门.部门ID
第二题以部门为数据源做一个DATAGRID,里面再套一个DATAGRID,以人员为数据源,使用第一个DATAGRID的部门ID为条件筛选。
select 部门.部门ID,isnull(部门.部门名称,'未标志') ,人员.人员ID,人员.人员姓名
from 部门 right join 人员 on 人员.部门ID = 部门.部门ID
第二题以部门为数据源做一个DATAGRID,里面再套一个DATAGRID,以人员为数据源,使用第一个DATAGRID的部门ID为条件筛选。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select 人员姓名,isnull(部门名称,'未标志') 部门名称
from 人员表 left join 部门表 on 人员表.部门ID=部门表.部门ID
from 人员表 left join 部门表 on 人员表.部门ID=部门表.部门ID
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询