分别有表A(营运中车辆信息表)和表B(报废车辆信息表)
两表都有相同字段并在字段CarID中一一对应如
表A
ID CarID CarNo
1 001 AAAAAA
2 002 BBBBBB
3 003 CCCCCC
表B
ID CarID CarNo DateTime
1 001 AFAFAD 2007-4-1
2 001 FAFAFF 2007-4-2
3 002 FAFDAS 2007-4-1
4 002 ADSFSAD 2007-4-5现在我需要进行关联查询,表B与表A是多对一的关系,但以DateTime的最后时间为标准如表C
CarID a.CarNo b.CarNo
001 AAAAAA FAFAFF
002 BBBBBB ADSFSAD请问各位大大怎样写语句啊?谢谢!
两表都有相同字段并在字段CarID中一一对应如
表A
ID CarID CarNo
1 001 AAAAAA
2 002 BBBBBB
3 003 CCCCCC
表B
ID CarID CarNo DateTime
1 001 AFAFAD 2007-4-1
2 001 FAFAFF 2007-4-2
3 002 FAFDAS 2007-4-1
4 002 ADSFSAD 2007-4-5现在我需要进行关联查询,表B与表A是多对一的关系,但以DateTime的最后时间为标准如表C
CarID a.CarNo b.CarNo
001 AAAAAA FAFAFF
002 BBBBBB ADSFSAD请问各位大大怎样写语句啊?谢谢!
insert @a select 1 ,'001', 'AAAAAA'
union all select 2, '002', 'BBBBBB'
union all select 3, '003', 'CCCCCC'declare @B table(ID int, CarID varchar(10), CarNo varchar(10), [DateTime] datetime)
insert @b select 1, '001','AFAFAD','2007-4-1'
union all select 2 ,'001', 'FAFAFF', '2007-4-2'
union all select 3 ,'002', 'FAFDAS', '2007-4-1'
union all select 4 ,'002', 'ADSFSAD', '2007-4-5'select a.carid,a.carno,b.carno from @a a,@b b where a.carid=b.carid and not exists(select 1 from @b where carid=a.carid and [datetime]>b.[datetime])
还是表A和表B
但
数据如下:
表A
ID CarID CarNo
1 001 AAAAAA
2 002 BBBBBB
3 003 CCCCCC
表B
ID CarID CarNo DateTime
1 001 AFAFAD 2007-4-1
2 001 FAFAFF 2007-4-2
3 002 FAFDAS 2007-4-1
4 002 ADSFSAD 2007-4-5
5 003 DAFDSFA 2007-4-1
7 004 FDSAADSF 2007-4-2如上表B中有表A中没有的004现在要反过来
如表C1
CarID b.CarNo a.CarNo
001 AAAAAA FAFAFF
002 BBBBBB ADSFSAD
003 DAFDSFA CCCCCC
004 FDSAADSF 同样表B也是只取DateTime中最新时间的为第一!请问应该怎样实现啊?谢谢!
insert @a select 1 ,'001', 'AAAAAA'
union all select 2, '002', 'BBBBBB'
union all select 3, '003', 'CCCCCC'declare @B table(ID int, CarID varchar(10), CarNo varchar(10), [DateTime] datetime)
insert @b select 1, '001','AFAFAD','2007-4-1'
union all select 2 ,'001', 'FAFAFF', '2007-4-2'
union all select 3 ,'002', 'FAFDAS', '2007-4-1'
union all select 4 ,'002', 'ADSFSAD', '2007-4-5'
union all select 5 ,'003', 'DAFDSFA', '2007-4-1'
union all select 7 ,'004', 'FDSAADSF', '2007-4-2'
select a.carid,b.carno,a.carno from
(select id,carid,carno,[datetime] from @b b where not exists(select 1 from @b where carid=b.carid and [datetime]>b.[datetime])) a left join
@a b On a.carid=b.carid
分别有表A(营运中车辆信息表)和表B(报废车辆信息表)表C (司机资料)
两表A和B都有相同字段并在字段CarID中一一对应如
表A
ID CarID CarNo
1 001 AAAAAA
2 002 BBBBBB
3 003 CCCCCC
表B
ID CarID CarNo DateTime
1 001 AFAFAD 2007-4-1
2 001 FAFAFF 2007-4-2
3 002 FAFDAS 2007-4-1
4 002 ADSFSAD 2007-4-5
表C
ID CarID DriverName
1 001 小明
2 001 小红
3 002 小黄
4 002 小辉
现在我需要进行关联查询,表B与表A是多对一的关系,但以DateTime的最后时间为标准
同时表C是表A中车辆的司机,关系是一车多个司机现在
如表D
CarID a.CarNo b.CarNo c.DriverName
001 AAAAAA FAFAFF 小明
001 AAAAAA FAFAFF 小红
002 BBBBBB ADSFSAD 小黄
002 BBBBBB ADSFSAD 小辉 请问各位大大怎样写语句啊?谢谢!