2017-04-05 19 views
-1

PHPで自動小計に問題があります。小計を計算するとエラーが発生する

最初に小計のみを記録すると、次に&が自動的に小計になることができますが、最初の小計の最初のレコードでは小計の合計ができません。

しかし、第二&については、次の小計要約は右である、あなたは下の画像を見ることができます:

Please see for Image result in here

この私のPHPコードの私を助けてください。

$rm_kode = $_POST['wl']; 
$tahun  = $_POST['th']; 
$bulan  = $mLoad->add_zero($_POST['bl']); 
#$m_db2->debug = true; 

if(!empty($bulan)){ 
    if(!empty($rm_kode)){ 
     $tanya = "AND kode_rsm='$rm_kode'"; 
    } 

    $rs = $m_db2->Execute("SELECT DISTINCT 
      nm_wil, 
      kode_rsm, 
      nama_rsm, 
      area, 
      area_am_kode, 
      area_am_nama, 
      mr_kode, 
      mr_nama, 
      tahun, 
      bln, 
      SUM (
       (
        CASE 
        WHEN target_qty < 0 THEN 
         0 
        ELSE 
         target_qty 
        END 
       ) 
      ) AS target_qty, 
      SUM (
       (
        CASE 
        WHEN target_value < 0 THEN 
         0 
        ELSE 
         target_value 
        END 
       ) 
      ) AS target_value, 
      SUM (total_qty) AS total_qty, 
      SUM (total_value) AS total_value               
     FROM 
      v_report_sales_2015 
     WHERE 
      tahun= '$tahun' 
     AND (
      bln= '$bulan' 
      /*AND bln :: INTEGER <= '11'*/ 
     ) 
     --AND target_qty<>-1 
     $tanya 
     AND am_is_lock = 'f' 
     AND rsm_is_lock = 'f' 
     AND mr_is_lock = 'f' 
     GROUP BY 
      mr_kode, 
      mr_nama, 
      area, 
      area_am_kode, 
      area_am_nama, 
      kode_rsm, 
      nama_rsm, 
      nm_wil,              
      tahun, 
      bln"); 

    $no =1; 

    #Get Nama SM 
    $rsb = $m_db2->Execute("SELECT usr_nama FROM vsiko_users WHERE usr_sales='$rm_kode'"); 

    #Set awal nilai sebagai nol; 
    $sub_tqty = $sub_tval = $sub_rqty = $sub_rval = $goal_am = 0; 

    while(!$rs->EOF) 
    { 

     #Group By SM 
     if($cur_rsm!=$rs->fields['kode_rsm']) 
     { 
      $cur_rsm =$rs->fields['kode_rsm']; 
      $am = 1; 

      echo '<tr> 
        <td colspan="8"></td> 
        </tr> 
        <tr class="alert alert-warning"> 
        <td></td> 
        <td>'.$rs->fields['kode_rsm'].'</td> 
        <td>'.$rs->fields['nama_rsm'].'</td> 
        <td>'.$rs->fields['nm_wil'].'</td> 
        <td></td> 
        <td></td> 
        <td></td> 
        <td></td> 
        <td></td> 
        </tr>'; 
     } 

     #Group By AM         
     if(@$cur_am!=$rs->fields['area_am_kode']) 
     { 
      $cur_am = $rs->fields['area_am_kode']; 

      #Produk Group AM 
      $rsc = $m_db2->Execute("SELECT a.ins_group_produk FROM mst_insentive_pgroup AS a WHERE a.ins_kode='".$rs->fields['pg_am']."'"); 

      echo '<tr> 
        <td colspan="8"></td> 
        </tr> 
        <tr class="alert alert-success"> 
        <td align="center"> 
        <button class="btn btn-sm btn-success" onclick=bukaWin("detail.mul?app=sales&mod=print_sales_am&th='.str_replace('=','',base64_encode($tahun)).'&bl='.str_replace('=','',base64_encode($bulan)).'&sl='.str_replace('=','',base64_encode($rs->fields['area_am_kode'])).'&sid='.$mLoad->mSID().'")><span class="glyphicon glyphicon-print"></span></button></button> 
        </td> 
        <td>'.$rs->fields['area_am_kode'].'</td> 
        <td>'.$rs->fields['area_am_nama'].'</td> 
        <td>'.$rs->fields['area'].'</td> 
        <td colspan="5"><small>'.$rsc->fields['ins_group_produk'].'</small></td> 
        </tr>'; 
     }              

     #Sales MR 
     #Hitung Goal per MR dalam Persen 
     $goal = @($rs->fields['total_value']/$rs->fields['target_value'])*100; 

     #Produk Group AM 
     $rsd = $m_db2->Execute("SELECT a.ins_group_produk FROM mst_insentive_pgroup AS a WHERE a.ins_kode='".$rs->fields['pg_mr']."'");        

     echo '<tr> 
       <td><button class="btn btn-sm btn-default" onclick=bukaWin("detail.mul?app=sales&mod=print_sales_mr&th='.str_replace('=','',base64_encode($tahun)).'&bl='.str_replace('=','',base64_encode($bulan)).'&sl='.str_replace('=','',base64_encode($rs->fields['mr_kode'])).'&sid='.$mLoad->mSID().'")><span class="glyphicon glyphicon-print"></span></button></td> 
       <td>'.$rs->fields['mr_kode'].'</td> 
       <td>'.$rs->fields['mr_nama'].'</td> 
       <td>'.$rsd->fields['ins_group_produk'].'</td> 
       <td align="right">'.number_format($rs->fields['target_qty']).'</td> 
       <td align="right">'.number_format($rs->fields['target_value']).'</td> 
       <td align="right">'.number_format($rs->fields['total_qty']).'</td> 
       <td align="right">'.number_format($rs->fields['total_value']).'</td> 
       <td align="right">'.number_format(round($goal,2),2).' %</td> 
       </tr>'; 

     #Hitung Sub Total 
     #Subtotal Target 
     $sub_tqty += $rs->fields['target_qty']; 
     $sub_tval += $rs->fields['target_value']; 

     #Subtotal Reals 
     $sub_rqty += $rs->fields['total_qty']; 
     $sub_rval += $rs->fields['total_value']; 

     #Hitung Goal per AM dalam Persen 
     $goal_am= @($sub_rval/$sub_tval)*100; 

     #Hitung Goal Nasional 
     $goal_nas= @($gran_rval/$gran_tval)*100; 

     #Hitung Grand Total 
     $gran_tqty += $rs->fields['target_qty']; 
     $gran_tval += $rs->fields['target_value']; 
     $gran_rqty += $rs->fields['total_qty']; 
     $gran_rval += $rs->fields['total_value']; 

     $rs->MoveNext();                      

     #Hitung Sub Total Group By AM 
     if(@$cu_am!=$rs->fields['area_am_nama']) 
     { 
      $cu_am = $rs->fields['area_am_nama']; 

      echo '<tr>          
        <td colspan="4"></td> 
        <td align="right" class="alert alert-danger">'.number_format($sub_tqty).'</td> 
        <td align="right" class="alert alert-danger">'.number_format($sub_tval).'</td> 
        <td align="right" class="alert alert-danger">'.number_format($sub_rqty).'</td> 
        <td align="right" class="alert alert-danger">'.number_format($sub_rval).'</td> 
        <td align="right" class="alert alert-danger">'.number_format(round($goal_am,2),2).' %</td> 
        </tr>'; 

      #Reset setiap kali group selanjutnya 
      $goal_am = 0; 
      $sub_tqty = 0; 
      $sub_tval = 0; 
      $sub_rqty = 0; 
      $sub_rval = 0;                        

     }                

    } 
    echo '<tr> 
      <td colspan="8"></td> 
      </tr> 
      <tr id="tebal">          
      <td colspan="4" align="center"><b>Grand Total </b> # <i>'.ucwords(strtolower($rsb->fields['usr_nama'])).'</i></td> 
      <td align="right" class="alert alert-warning"><b>'.number_format($gran_tqty).'</b></td> 
      <td align="right" class="alert alert-warning"><b>'.number_format($gran_tval).'</b></td> 
      <td align="right" class="alert alert-warning"><b>'.number_format($gran_rqty).'</b></td> 
      <td align="right" class="alert alert-warning"><b>'.number_format($gran_rval).'</b></td> 
      <td align="right" class="alert alert-warning"><b>'.number_format(round($goal_nas,2),2).' %</b></td> 
      </tr>'; 
}else{ 
    echo '<tr> 
      <td colspan="9" align="center">Pilih kriteria pencarian terlebih dahulu</td> 
      </td>'; 
} 
+0

たTHX @suraj、私はなし私のループを理解している初心者 – Muyana

答えて

0

TRY:私の質問を編集するためのSUM(IF(target_qty < 0, 0, target_qty)) as target_qty

+0

ありがとう@dektsが、SQL構文ではありません失敗ごめんなさい。 – Muyana

関連する問題