表1(培训课程表):
培训ID 培训课程代码 开始日期 结束日期 学时 老师 培训地点 是否周末表2(培训记录表):
培训ID 培训期次 培训类别 培训名称 开始日期 结束日期 合格分数 是否发布成绩 表3:
老师代码 老师名字现在我要查询下面的形式:老师名字 常规课时 周末课时
求教现在我该如何写着个sql语句?
因为我对sqlserve2005 和sql语句实在不怎么会,向各位大神请教下
解决方案 »
- 主服务器是20008系统 客服端是2003系统.客服端访问asp.net系统 查看MSChar生成图片居然是叉请问下是啥问题
- “System.Web.UI.WebControls.ListViewItem”不包含“DataItem”的定义
- datagrid 结果显示双列或多列(不是多字段,是同一字段多列显示)问题。
- 没有菜单栏 没有地址栏 没有按钮栏的IE窗口叫什么? 怎么用ASP.NET打开呢?
- .net中Access的查询问题
- 数据库中的小问题
- 用vs2005调试程序需要哪个版本的iis?
- SQL 语句中取最后一条记录ID的语句怎么写?
- 分页问题,出现异常,高手请! 加急
- 请大家给一个银行对帐的代码!可以再加分!!
- 动态生成验证码问题
- label 显示 文字
declare @表1 table
(
培训ID int,培训课程代码 varchar(3),
开始日期 varchar(10),结束日期 varchar(10),
学时 int,老师 varchar(2),
培训地点 varchar(6),是否周末 varchar(2)
)
insert into @表1
select 1,'001','2012-01-01','2012-01-08',5,'01','会议室','是' union all
select 2,'002','2012-01-01','2012-01-08',6,'01','会议室','是' union all
select 3,'003','2012-01-01','2012-01-08',7,'02','会议室','否' union all
select 4,'004','2012-01-01','2012-01-08',8,'03','会议室','否'declare @表3 table
(
老师代码 varchar(2),
老师名字 varchar(6)
)
insert into @表3
select '01','张三' union all
select '02','李四' union all
select '03','王五'select 老师名字,常规课时,周末课程 from
(
select null as 常规课时,培训课程代码 as 周末课程,老师
from @表1 where 是否周末='是'
union all
select 培训课程代码 ,null,老师 from @表1 where 是否周末='否'
) aa
left join @表3 bb on aa.老师=bb.老师代码
/*
老师名字 常规课时 周末课程
------ ---- ----
张三 NULL 001
张三 NULL 002
李四 003 NULL
王五 004 NULL
*/
表3.老师名字,
case when 是否周末=是 then 表1.学时 end,
case when 是否周末=否 then 表1.学时 end
from 表1,表3
where 表1.老师代码=表3.老师代码