62,046
社区成员
发帖
与我相关
我的任务
分享
select c.DepartmentID,c.FRSerialNumber,c.FaultType,c.SendTime,c.a2,c.eqmethd,c.eqshow,c.eqtype,s.FaultShowID as SfaultShowID,s.FaultShowName,m.DepartmentID as MdepartmentID,m.DepartmentName,
c.TestResult,c.VerifyNote,c.VerifyTime,c.TestTime,c.EquipmentID,c.EquipmentName,c.RRSerialNumber from
(
select b.TestResult,b.VerifyNote,b.VerifyTime,b.TestTime,b.EquipmentID,b.EquipmentName,b.RRSerialNumber, b.FRSerialNumber,b.eqtype,b.eqshow,b.eqmethd,b.FaultType,b.SendTime,b.DepartmentID, substring(b.eqshow+'|',number,charindex('|',b.eqshow+'|',number+1)-number) a2
from master..spt_values a,
(select LEFT(r.FaultType,CHARINDEX('*',r.FaultType)-1)as eqtype,
left(stuff(r.FaultType,1,charindex('*',r.FaultType),''),charindex('*',stuff(r.FaultType,1,charindex('*',r.FaultType),''))-1)as eqshow,
reverse(left(reverse(r.FaultType),charindex('*',reverse(r.FaultType))-1))as eqmethd,
r.SendTime,r.FRSerialNumber,r.DepartmentID,r.TestResult,r.VerifyNote,r.VerifyTime,r.TestTime,r.EquipmentID,r.EquipmentName,r.RRSerialNumber,
r.FaultType from Posss_RepairReport r
)as b
where a.type='p' and substring('|'+b.eqshow,number,1)='|'
)as c left join Posss_EqFaultShow s on c.a2=s.FaultShowID
left join Posss_Department m on c.DepartmentID=m.DepartmentID
if exists (select 1 from sysobjects where name = 'QryInformation' and xtype = 'p')
drop procedure QryInformation
go
create procedure QryStOutSoOrdMStorage
(
@SendTime Datetime
)
as
begin
--------------------------------先把最里面的子查询放入临时表#Posss_RepairReport
select LEFT(r.FaultType,CHARINDEX('*',r.FaultType)-1)as eqtype,
left(stuff(r.FaultType,1,charindex('*',r.FaultType),''),
charindex('*',stuff(r.FaultType,1,charindex('*',r.FaultType),''))-1)as eqshow,
reverse(left(reverse(r.FaultType),charindex('*',reverse(r.FaultType))-1))as eqmethd,
r.SendTime,r.FRSerialNumber,r.DepartmentID,r.TestResult,r.VerifyNote,r.VerifyTime,
r.TestTime,r.EquipmentID,r.EquipmentName,r.RRSerialNumber,
r.FaultType
into #Posss_RepairReport
from Posss_RepairReport r
-------------------------------------再从临时表中查出一些数据进行关联
select c.*,s.FaultShowID as SfaultShowID,s.FaultShowName,m.DepartmentID as MdepartmentID,m.DepartmentName
from
(
select b.TestResult,b.VerifyNote,b.VerifyTime,b.TestTime,b.EquipmentID,b.EquipmentName,b.RRSerialNumber,
b.FRSerialNumber,b.eqtype,b.eqshow,b.eqmethd,b.FaultType,b.SendTime,b.DepartmentID,
substring(b.eqshow+'|',number,charindex('|',b.eqshow+'|',number+1)-number) a2
from master..spt_values a,----------楼主这句略有不解
#Posss_RepairReport b
where a.type='p' and substring('|'+b.eqshow,number,1)='|'
)as c
left join Posss_EqFaultShow s on c.a2=s.FaultShowID
left join Posss_Department m on c.DepartmentID=m.DepartmentID
------------------------------最后删除临时表
drop table #Posss_RepairReport
end