SELECT 
  ROW_NUMBER() over (order by a.lngCraneNo)as F,
  a.lngCraneNo ,
  a.strCraneName , 
      b.strItemName_2 , 
      c.strUnitName_2 , 
      b.lngExchStand , 
      d.lngChangeValue ,
      case when isnull(b.lngExchStand,0)=0 then 0
      else 
      d.lngChangeValue/b.lngExchStand end as E,
      dtmCollectDate      
FROM tblMaintenanceOriData as q left JOIN
      BDataMaintenanceItem as b ON 
      q.lngCntUnitNo =b.lngCntUnitNo left JOIN
       SysBldSystemInfoDefine as a on
       a.lngItemNo = b.lngItemNo left JOIN
       BInfoMaintItemUnitDefine as c ON 
       b.lngUnitNo = c.lngUnitNo left JOIN
       tblMaintenanceHistory as d ON 
       a.lngGroupNo = d.lngGroupNo
       group by a.lngCraneNo,a.strCraneName,b.strItemName_2,c.strUnitName_2 , b.lngExchStand ,d.lngChangeValue,dtmCollectDate