1){ $orderbydesc=""; $descTXT="↓"; }else{ $orderbydesc=" desc"; $descTXT="↑"; } If ($orderby=="") { $orderby="OA_DepartmentID,OA_User_ID"; $descTXT="↓"; } //查询开始 $SqlOrdDateType=empty($SqlOrdDateType)!=false ? "" : $SqlOrdDateType; $sql="select vID,vtext,vOrder2 from dictionary where vType=1 and vtitle='Report_StaffScoreSum' order by vOrder"; $data = sqlsrv_query($conn,$sql); if($data == true){ $FormArray=array(); $sumOrdInt=0; $sumOrdMoney=0; $sumOrdMileage=0; $sumOrdTraDistance=0; //表头 $FormArray[0]=array("医护司安排","单量","金额","实际公里","预估距离"); $FormArrayX=count($FormArray[0]); if (sqlsrv_rows_affected($data)==0) { $SystemMessageType=2; $SystemMessageTXT="数据库中相关无数据!"; $y=0; } else { $i=1; while($rs = sqlsrv_fetch_array( $data, SQLSRV_FETCH_ASSOC) ) { //读取数据 $vID = $rs['vID']; $vtext = $rs['vtext']; $FrontSql = " ".$rs['vOrder2']; $sql="select OrdInt=count(DispatchOrdID),OrdMoney=isnull(SUM(ServiceOrdTraTxnPrice+StretcherMoney),0),OrdMileage=isnull(SUM(DispatchOrdMileage),0),OrdTraDistance=isnull(sum(convert(money,Replace(Replace(ServiceOrdTraDistance,'公里',''),'km',''))),0) from DispatchOrd,ServiceOrder where ServiceOrdID=ServiceOrdIDDt and DispatchOrdClass in ('".$OrdClassListSql."') and DispatchOrdState not in (0,1,2,3,9,10) and DispatchOrd_NS_Time ".$SqlOrdDateType.$FrontSql; $sq="select OrdInt=isnull(SUM(OrdInt),0),OrdMoney=isnull(SUM(OrdMoney),0),OrdMileage=isnull(SUM(OrdMileage),0),OrdTraDistance=isnull(SUM(OrdTraDistance),0) from (select OrdInt=count(DispatchOrdID),case when isnull(SUM(ServiceOrdTraTxnPrice+StretcherMoney),0)=0 or DispatchOrdPerfomance=0 then 0 else SUM(ServiceOrdTraTxnPrice+StretcherMoney)/((select SUM(DispatchOrdPerfomance) from DispatchOrd where ServiceOrdIDDt=ServiceOrdID and DispatchOrdState not in (10))/DispatchOrdPerfomance) END as OrdMoney,OrdMileage=isnull(SUM(DispatchOrdMileage),0),OrdTraDistance=isnull(sum(convert(money,Replace(Replace(ServiceOrdTraDistance,'公里',''),'km',''))),0) from DispatchOrd LEFT JOIN ServiceOrder on ServiceOrdIDDt=ServiceOrdID where DispatchOrdClass in ('".$OrdClassListSql."') and DispatchOrdState not in (0,1,2,3,9,10) and DispatchOrd_NS_Time ".$SqlOrdDateType.$FrontSql." GROUP BY DispatchOrdPerfomance,ServiceOrdID) as aa"; //echo $sql; $dataDt = sqlsrv_query($conn,$sql); if($dataDt == true){ while($rsDt = sqlsrv_fetch_array( $dataDt, SQLSRV_FETCH_ASSOC) ) { $OrdInt = $rsDt['OrdInt']; $OrdMoney = $rsDt['OrdMoney']; $OrdMileage = $rsDt['OrdMileage']; $OrdTraDistance = $rsDt['OrdTraDistance']; } } $sumOrdInt+=$OrdInt; $sumOrdMoney+=round($OrdMoney,0); $sumOrdMileage+=round($OrdMileage,0); $sumOrdTraDistance+=round($OrdTraDistance,0); //读取数据--End //写入数组 $FormArray[$i][0]="$vtext"; $FormArray[$i][1]=$OrdInt; $FormArray[$i][2]=round($OrdMoney,0); $FormArray[$i][3]=round($OrdMileage,0); $FormArray[$i][4]=round($OrdTraDistance,0); $i++; //写入数组--End } //汇总 $FormArray[$i][0]="汇总"; $FormArray[$i][1]=$sumOrdInt; $FormArray[$i][2]=round($sumOrdMoney,0); $FormArray[$i][3]=round($sumOrdMileage,0); $FormArray[$i][4]=round($sumOrdTraDistance,0); } } //echo print_r($FormArray); //exit; ?>