$CR, 'PO' => $PO, 'EGI' => $EGI, '304 HL' => $HL304, '201 2B MR' => '3.0', '201 MR' => '3.0', '201 HL' => '2.8', '304 MR' => $MR304, 'etcsteel' => $etcsteel ]; $sql = "SELECT EXTRACT(YEAR FROM outdate) AS year, EXTRACT(MONTH FROM outdate) AS month, item, spec, steelnum, bad_choice FROM " . $DB . ".steel WHERE (bad_choice IS NOT NULL AND bad_choice != '' AND bad_choice != '해당없음' ) AND outdate BETWEEN date('$fromdate') AND date('$Transtodate') ORDER BY year, month"; $total_sum = 0; $total_price = 0 ; $weight = 0 ; try{ // 레코드 전체 sql 설정 $stmh = $pdo->query($sql); // 검색조건에 맞는글 stmh while($row = $stmh->fetch(PDO::FETCH_ASSOC)) { $item = trim($row["item"]); $spec = trim($row["spec"]); $steelnum = intval($row["steelnum"]); $bad_choice = $row["bad_choice"]; $spec_parts = explode('*', $spec); $thickness = floatval($spec_parts[0]); $width = intval($spec_parts[1]); $length = intval($spec_parts[2]); $weight = $thickness * $width * $length/1000; if($steelnum !== 0) // 수량이 1이상일때 잔재는 제외함 { if (array_key_exists($item, $price_per_kg)) { $price = intval($price_per_kg[$item]); } else { $price = intval($price_per_kg['etcsteel']); } $total_price = $weight * $price * $steelnum * 7.93; $total_sum += $total_price; } else { $total_price = 0 ; $total_sum += $total_price; } } } catch (PDOException $Exception) { print "오류: ".$Exception->getMessage(); } // 최종 결과를 포맷팅하여 출력 $formatted_total_sum = number_format($total_sum, 0, '.', ','); echo '
부적합 비용
' . $formatted_total_sum . '원
'; $sql = "SELECT EXTRACT(YEAR FROM outdate) AS year, EXTRACT(MONTH FROM outdate) AS month, item, spec, steelnum, bad_choice FROM " . $DB . ".steel WHERE (bad_choice IS NOT NULL AND bad_choice != '' AND bad_choice != '해당없음') AND outdate BETWEEN date('$fromdate') AND date('$Transtodate') ORDER BY year, month"; // 다음 월별/년도별 합계를 계산하기 위해 다음과 같이 코드를 수정합니다. $monthly_totals = []; $total_sum = 0; try{ // 레코드 전체 sql 설정 $stmh = $pdo->query($sql); // 검색조건에 맞는글 stmh while ($row = $stmh->fetch(PDO::FETCH_ASSOC)) { $item = trim($row["item"]); $spec = trim($row["spec"]); $steelnum = $row["steelnum"]; $bad_choice = $row["bad_choice"]; $spec_parts = explode('*', $spec); $thickness = $spec_parts[0]; $width = $spec_parts[1]; $length = $spec_parts[2]; $weight = $thickness * $width * $length/1000; if((int)$steelnum !== 0) // 수량이 1이상일때 잔재는 제외함 { if (array_key_exists($item, $price_per_kg)) { $price = intval($price_per_kg[$item]); } else { $price = intval($price_per_kg['etcsteel']); } $total_price = ($weight * $price * $steelnum * 7.93); $total_sum += $total_price; } else { $total_price = 0 ; $total_sum += $total_price; } $year = $row["year"]; $month = $row["month"]; if (!isset($monthly_totals["$year-$month"])) { $monthly_totals["$year-$month"] = 0; } $monthly_totals["$year-$month"] += $total_price; } } catch (PDOException $Exception) { print "오류: ".$Exception->getMessage(); } ?>