
select i.維修人員,i.接單數,i.保固內,i.保固外,i.已完修數,j.已退修數 from (
 select g.維修人員,g.接單數,g.保固內,g.保固外,h.已完修數 from (
 select e.維修人員,e.接單數,e.保固內,f.保固外 from (
 select c. 維修人員,c.接單數,d.保固內 from (
  select a.維修人員 維修人員,b.接單數 from (
    select MECHANIC_NAME 維修人員 from WO
    group by MECHANIC_NAME
  )A Left join (
   select MECHANIC_NAME 維修人員,count(*) 接單數 from  WO
   group by MECHANIC_NAME
  )B ON (A.維修人員 = b.維修人員)
--需確認 ASSET.HAVEWARRANTY=1 (保內還是外)
   )C left join (
    select wo.MECHANIC_NAME 維修人員,count(ASSET.HAVEWARRANTY) 保固內 from ASSET
    join wo on (wo.ASSET_ID = ASSET.ASSET_ID)
    where ASSET.HAVEWARRANTY = 1
    group by wo.MECHANIC_NAME
   )D on (c.維修人員 = d.維修人員)
    )e left join (
     select wo.MECHANIC_NAME 維修人員,count(ASSET.HAVEWARRANTY) 保固外 from ASSET
     join wo on (wo.ASSET_ID = ASSET.ASSET_ID)
     where ASSET.HAVEWARRANTY = 0
     group by wo.MECHANIC_NAME
    )f on (e.維修人員 = f.維修人員)
	 
	  )g left join (
       select wo.MECHANIC_NAME 維修人員,count(wo.STATE_NAME) 已完修數 from WO
	   where wo.STATE_NAME  like N'%已完修%'
       group by MECHANIC_NAME
      )h on (g.維修人員 = h.維修人員)
       )i full join (
        select wo.MECHANIC_NAME 維修人員,count(wo.STATE_NAME) 已退修數 from WO
	    where wo.STATE_NAME  like N'%已退修%'
        group by MECHANIC_NAME
       )j on (i.維修人員 = j.維修人員)
需新增
完成率=已完修數/(接單數-已退修數)
請教各位大神語法該如何下?
第一行 增加一個欄位做運算即可
select i.維修人員,i.接單數,i.保固內,i.保固外,i.已完修數,j.已退修數 , convert(float,i.已完修數)/(convert(float,i.接單數)-convert(float,j.已退修數)) as 完成率
from (......
感謝回復請問算出來的結果如何換算成百分比
--工作表四-0606
 select i.維修人員,i.接單數,i.保固內,i.保固外,i.已完修數,i.已退修數,convert(float,i.已完修數)/(convert(float,i.接單數)-convert(float,j.已退修數))as 完成率 from (
 select i.維修人員,i.接單數,i.保固內,i.保固外,i.已完修數,j.已退修數 from (
 select g.維修人員,g.接單數,g.保固內,g.保固外,h.已完修數 from (
 select e.維修人員,e.接單數,e.保固內,f.保固外 from (
 select c. 維修人員,c.接單數,d.保固內 from (
  select a.維修人員 維修人員,b.接單數 from (
    select MECHANIC_NAME 維修人員 from WO
    group by MECHANIC_NAME
  )A Left join (
   select wo.MECHANIC_NAME 維修人員,count(*) 接單數 from  WO
   group by MECHANIC_NAME
  )B ON (A.維修人員 = b.維修人員)
--需確認 ASSET.HAVEWARRANTY=1 (保內還是外)
   )C left join (
    select wo.MECHANIC_NAME 維修人員,count(ASSET.HAVEWARRANTY) 保固內 from ASSET
    join wo on (wo.ASSET_ID = ASSET.ASSET_ID)
    where ASSET.HAVEWARRANTY = 1
    group by wo.MECHANIC_NAME
   )D on (c.維修人員 = d.維修人員)
    )e left join (
     select wo.MECHANIC_NAME 維修人員,count(ASSET.HAVEWARRANTY) 保固外 from ASSET
     join wo on (wo.ASSET_ID = ASSET.ASSET_ID)
     where ASSET.HAVEWARRANTY = 0
     group by wo.MECHANIC_NAME
    )f on (e.維修人員 = f.維修人員)
	 
	  )g left join (
       select wo.MECHANIC_NAME 維修人員,count(wo.STATE_NAME) 已完修數 from WO
	   where wo.STATE_NAME  like N'%已完修%'
       group by MECHANIC_NAME
      )h on (g.維修人員 = h.維修人員)
       )i left join (
        select wo.MECHANIC_NAME 維修人員,count(wo.STATE_NAME) 已退修數 from WO
	    where wo.STATE_NAME  like N'%已退修%'
        group by MECHANIC_NAME
       )j on (i.維修人員 = j.維修人員)
	   )i left join (
        select wo.MECHANIC_NAME 維修人員,count(wo.STATE_NAME) 已退修數 from WO
	    where wo.STATE_NAME  like N'%已退修%'
        group by MECHANIC_NAME
       )j on (i.維修人員 = j.維修人員)