用一条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
请前辈赐教!
展开
 我来答
lieut_sniper
2010-06-10 · TA获得超过2538个赞
知道大有可为答主
回答量:1456
采纳率:0%
帮助的人:1205万
展开全部
数据库表 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项,在显示的时候有一个分类是重复的。重复之后要取唯一项很是麻烦,所以我直接换用了第一种方法。

实际应用中的一点小心得,有不对的请指教,也欢迎大家来一起讨论,寻找更优的解决方法。

参考资料: http://www.qdxkj.com/shownew.aspx?wzid=52

depluin
推荐于2017-11-23 · TA获得超过3179个赞
知道大有可为答主
回答量:3378
采纳率:75%
帮助的人:2480万
展开全部
0分啊.......只给你第一题的代码好了
select 部门.部门ID,isnull(部门.部门名称,'未标志') ,人员.人员ID,人员.人员姓名
from 部门 right join 人员 on 人员.部门ID = 部门.部门ID

第二题以部门为数据源做一个DATAGRID,里面再套一个DATAGRID,以人员为数据源,使用第一个DATAGRID的部门ID为条件筛选。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
如意又婉丽的雪花N
2010-06-10 · TA获得超过1213个赞
知道小有建树答主
回答量:630
采纳率:0%
帮助的人:1023万
展开全部
select 人员姓名,isnull(部门名称,'未标志') 部门名称
from 人员表 left join 部门表 on 人员表.部门ID=部门表.部门ID
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式