อยากรู้วิธี sum เงินเดือนแยกแต่ละแผนกค่ะ ใครพอมีวิธีบางคะ ช่วยแนะนำหน่อย
ขอดู Table Structure ที่เก็บข้อมูลหน่อยครับ
Date :
2013-05-17 19:41:41
By :
itpcc
table emp
applicant_id (int10)
name (varchar30)
surname (varchar30)
section (varchar20)
table emp_asset
applicant_id (int10)
payroll (double15,2)
$sql_emp ="SELECT emp.applicant_id, emp.name, emp.surname, emp.section, emp_asset.payroll, FROM emp INNER JOIN emp_asset ON emp.applicant_id = emp_asset.applicant_id
ประมาณนี้อ่ะค่ะตารางจริง field มันเยอะค่ะ
Date :
2013-05-17 19:59:27
By :
Pucca^^
Code (SQL)
SELECT emp.name, emp.surname, emp.`section`, SUM(emp_asset.payroll) FROM emp LEFT JOIN emp_asset ON emp.applicant_id = emp_asset.applicant_id GROUP BY emp_asset.applicant_id
แล้วค่อยเก็บผลรวมของแต่ละแผนกตอนประมวลผลดูครับ
ประวัติการแก้ไข 2013-05-17 21:02:18 2013-05-17 21:02:35
Date :
2013-05-17 20:53:01
By :
itpcc
ไม่ใช่ครับ อันนี้แยกผลรวมของแต่ละคนแล้วครับ
แต่ต้องแยกของแต่ละแผนกเอง - * -
Date :
2013-05-17 21:01:57
By :
itpcc
ประวัติการแก้ไข 2013-05-18 10:19:09 2013-05-18 10:19:43
Date :
2013-05-17 21:39:37
By :
Pucca^^
ทำซัก 2 loop น่าจะทำให้ดูง่ายขึ้นน่ะครับ
ทำ loop เดียวต้องมาทำ condition ใน loop
Date :
2013-05-18 00:10:07
By :
ผ่านมา
ยังไงอ่ะคะ งงมาหลายวันแล้ว
Date :
2013-05-18 09:13:16
By :
Pucca^^
"เงินเดือนแยกแต่ละแผนก" ความหมายของประโยคนี้คือ ต้องการแสดงเรียงไปทีละแผนกใช่หรือเปล่าครับ
ถ้าใช่ เพิ่ม ORDER by emp.section แต่ละแผนกข้อมูลก็จะออกมาเรียงแผนกครับ
Code (PHP)
$sql_emp ="SELECT emp.applicant_id, emp.name, emp.surname, emp.section, emp_asset.payroll ";
$sql_emp.=" FROM emp INNER JOIN emp_asset ON emp.applicant_id = emp_asset.applicant_id ";
//กรณีเงินเดือนเก็บข้อมูลแยกเป็นแต่ละเดือนไป
//$sql_emp.=" WHERE field_month = '$select_month' ";
$sql_emp.=" ORDER by emp.section "; // <-- บรรทัดนี้
แล้วตอนแสดงผล ในลูป ก็ใช้คำสั่ง if เพื่อเช็กว่าแถวปัจจุบัน เปลี่ยนแผนกรึยัง ถ้าเปลี่ยนก็แทรกแถวแสดงแผนกครับ
ปล. ก่อนแทรกแถว ถ้าผลรวมไม่ใช่ค่าว่าง ต้องแทรกผลรวมของแผนกก่อนหน้าแถวที่แสดงชื่อแผนกนะครับ ^^"
ประวัติการแก้ไข 2013-05-18 09:37:38 2013-05-18 09:38:05
Date :
2013-05-18 09:36:06
By :
Naizan
ขอถามอีกอย่างนะคะถ้าต้องการให้รายชื่อที่ซ้ำกันแสดงแค่อันเดียวแบบในภาพตัวอย่าง ต้องทำไงคะ
Code (PHP)
<TR bgcolor="#FFFFFF">
<TD align="center" class="border3"><?echo $row_com?></TD>
<TD align="center" class="border4"> <?echo $r['applicant_id']?></TD>
<TD align="left" nowrap class="border4"> <?echo $r['th_name']." ".$r['th_surname'];?></TD>
<TD align="left" class="border4"> <?echo position_name($r['postion_id']);?></TD> <?//ตำแหน่ง?>
<TD align="left" class="border4"> <?echo $r['type_asset']?></TD><?//ประเภท?>
<TD align="left" class="border4"> <?echo $r['description']?></TD><?//ยี่ห้อ?>
<TD align="left" class="border4"> <?echo $r['document_no']?></TD><?//เลขที่อ้างอิง?>
<TD align="center" class="border4"> <?echo $r['instalment']?></TD><?//จำนวนงวด?>
<TD align="right" class="border4"> <?echo $r['amount']?></TD><?//มูลค่าซื้อ?>
<TD align="right" class="border4"> <?echo $r['amount_per_time']?></TD><?//งวดละ?>
<TD align="center" class="border4"> <?echo MonthThai($r['month_start'])." ".YearThai($r['year_start'])?></TD><?//จ่ายงวดแรก?>
<TD align="center" class="border4"> <?echo MonthThai($r['month_end'])." ".YearThai($r['year_end'])?></TD><?//จ่ายงวดสุดท้าย?>
<TD align="left" class="border4"> <?echo $r['comment']?></TD><?//หมายเหตุ?>
<TD align="center" class="border4"> <?if($r['pay_status']==1){echo "อยู่ระหว่างการทำจ่าย";}else{echo "ปิดการจ่าย";}?></TD><?//สถานะทำจ่าย?>
</TR>
Date :
2013-05-18 11:21:22
By :
Pucca^^
Load balance : Server 01