专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > VB Dotnet

多表查询有关问题

发布时间:2011-06-23 16:04:44 文章来源:www.iduyao.cn 采编人员:星星草
多表查询问题
我有三个表,一个表为基本表,一个是代码表,一个是出差表
表一 编号,姓名 ,职别
  001 李三 101
  002 张四 105

表二 职别代码 职别名称
  101 经理
  105 副经理

表三 编号 出差日期
  001 20110101
  001 20111201
  002 20110105
  002 20111201
请如何将查询的结果形成如下表格
  编号 姓名 职别名称 出差次数
  001 李三 经理 2
  002 张四 副经理 1
利用VB。NET

------解决方案--------------------
这个应该去MS SQL Server版区问

SQL code
use test
go
------->>>By 苦苦的潜行者
if object_id('t1') is not null and object_id('t2') is not null and object_id('t3') is not null
drop table t1,t2,t3
go
create table t1([编号] varchar(10),[姓名] varchar(10),[职别] varchar(10))
insert t1
select '001','李三','101' union all
select '002','张四','105'
go
create table t2([职别代码] varchar(10),[职别名称] varchar(10))
insert t2
select '101','经理' union all
select '105','副经理'
go
create table t3([编号] varchar(10),[出差日期] datetime)
insert t3
select '001','20110101' union all
select '001','20111201' union all
select '002','20110105' union all
select '002','20111201'
go
select a.[编号],b.[姓名],c.[职别名称],count(a.[编号]) as [出差次数] 
from t3 as a
join t1 as b on a.[编号]=b.[编号]
join t2 as c on b.[职别]=c.[职别代码]
group by a.[编号],b.[姓名],c.[职别名称]
/*
(所影响的行数为 2 行)
编号    姓名   职别名称  出差次数
---     ---    ------  -----
001    李三    经理    2
002    张四    副经理    2

*/
go
drop table t1,t2,t3
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: