日期:2014-05-17  浏览次数:20443 次

求三表连接SQL,在线等,谢谢!
姓名表:
ID   姓名  指标ID
1    小明    1
2    小李    2
3    小张    1

指标表:
ID   迟到指标  早退指标  旷课指标
1    10        5        5
2    20        10       5

实际表:
ID  日期       姓名ID   实际迟到  实际早退  实际旷课
1  2013-04-01    1         5          0         3
2  2013-5-10     3         0          2         5
==============================================================================
按日期区间查询:区间为上月26日至本月25日

查询2013年3月26日至2013年4月25日之间结果:

姓名  迟到指标  实际迟到  早退指标  实际早退  旷课指标  实际旷课
小明    10         5         5         0        5         3
小李    20                   10                 5
小张    10                   5                  5
SQL 表连接

------解决方案--------------------

create table 姓名表
(ID int, 姓名 varchar(10), 指标ID int)

insert into 姓名表
select 1, '小明', 1 union all
select 2, '小李', 2 union all
select 3, '小张', 1

create table 指标表
(ID int, 迟到指标 int, 早退指标 int, 旷课指标 int)

insert into 指标表
select 1, 10, 5, 5 union all
select 2, 20, 10, 5

create table 实际表
(ID int, 日期  date, 姓名ID int, 实际迟到 int, 实际早退 int, 实际旷课 int)

insert into 实际表
select 1, '2013-04-01', 1, 5, 0, 3 union all
select 2, '2013-5-10', 3, 0, 2, 5


select a.姓名,
       b.迟到指标,
       isnull(rtrim(c.实际迟到),'') '实际迟到',
&nbs