以下是我写的一个SQL语句,执行效率非常低,各位同事朋友帮忙优化一下
select A.ConfirmNo as 确认号,
B.PONO AS 定单号,
C.ProcSeq as 工序,
B.ProdQty as 生产数量,
''第''+cast(A.ConfirmSeqNo as varchar(10))+''次'' as 确认次数,
(select givenName from employeetbl where employeeid=A.ConfirmPerson) as 确认者,
A.FinishTime as 确认时间,
A.ConfirmQty as 确认产量,
A.DeposedQty as 废品数量,
F.WCNO AS 工作中心,
B.MaterialNo as 物料编号,
(select matDescription from Tmaterial where materialid=b.MaterialID) AS 物料描述,
C.ProcDesc as 工序描述,
A.ConfirmQty*C.SetupTime as 计划准备时间,
A.SetupTime/60.0 as 实际准备时间,
CAST((CASE WHEN A.setupTime=0  OR A.setuptime is null THEN 0 ELSE (A.ConfirmQty*C.SetupTime*60)/A.setupTime END)*100 AS decimal(30,2))as 准备效率,
A.ConfirmQty*C.MachineTime as 计划机器时间,
A.MachineTime/60.0 as 实际机器时间,
CAST((CASE WHEN A.MachineTime=0 OR A.MachineTime is null THEN 0 ELSE (A.ConfirmQty*C.MachineTime*60)/A.MachineTime END)*100  AS decimal(30,2))as 机器效率,
A.ConfirmQty*C.LaborTime as 计划人工时间,
A.LaborTime/60.0 as 实际人工时间,
CAST((CASE WHEN A.LaborTime=0 OR A.LaborTime is null THEN 0 ELSE (A.ConfirmQty*C.LaborTime*60)/A.LaborTime END)*100 AS decimal(30,2))as  人工效率,
(select givenName from employeetbl where employeeid=E.MembId) as 完成人,
A.CStartTime as 开始时间,
A.CFinishTime as 完成时间,
A.Re as 备注
from 
TTicket A,Tprodorder B, TprodorderProcess C,TTicket_Member E,Twc F
where A.serialPOId=B.serialPOId and A.serialpopid=C.serialpopid and 
A.serialTicketId=E.serialTicketId and
C.WCID=F.WCID and
confirmFlag=1