求高手^^^^^^^^^^^^^^^^^^^^SQL题
表1
DeviceNO DeviceName CatalogNO
--------------------- -----------------------------------
B0001 笔记本 10001
D0001 打印机 10001
T0001 台式机 10001
T0002 投影机 10001
表2
DeviceNO ApplyUseID ApplyReturnID
--------------------- ---------- -------------
B0001 1001 1003
T0001 1002 NULL
表3
ApplyID ApplyUserName ApplyDatetime ApplyFlag
---------------------- ----------------------- ----------- -----------
1001 张三 2004-05-15 00:00:00.000 0
1002 李四 2006-01-01 00:00:00.000 0
1003 张三 2004-06-16 00:00:00.000 1
结果如下图所示(注意,当前状态是根据 表2中 ApplyReturnID字段是否为空作判断的)
资产编号 资产名称 领用时间 归还时间 使用者 当前状态
B0001 笔记本 2004-05-15 2004-06-16 张三 已归还
T0001 台式机 2006-01-01 null 李四 使用中
[解决办法]
select
a.DeviceNO as 资产编号,
a.DeviceName as 资产名称,
c.ApplyDatetime as 领用时间,
d.ApplyDatetime as 归还时间,
c.ApplyUserName as 使用者 ,
(case when b.ApplyReturnID is null then '使用中 ' else '已归还 ' end) as 当前状态
from
表1 a
inner join
表2 b
on
a.DeviceNO=b.DeviceNO
inner join
表3 c
on
b.ApplyUseID=c.ApplyUseID
left join
表3 d
on
b.ApplyReturnID=d.ApplyUseID