ช่วยด้วยครับ จะเขียนโค๊ดนับจำนวนจากตารางฐานข้อมูล ว่า id_personนี้มีการลาป่วยกี่ครั้ง ลากิจ กี่ครั้งใน 1 ปี เขียนโค๊ดยังไงหรอครับ ช่วยด้วยครับ มือใหม่ครับ
ลองเอาไปประยุกต์ดูครับ ไม่รู้จะใช่อย่างที่ต้องการหรือเปล่า
Code (SQL)
select id_person,
sum(case when typeLeave = 'Sick' Then 1 else 0 end) as Sick,
sum(case when typeLeave = 'busin' Then 1 else 0 end) as busin,
sum(case when typeLeave = 'Annua' Then 1 else 0 end) as annual
from TableXX where lstToYear='2015' group by id_person
Date :
2015-04-20 22:28:43
By :
ipstarone
่ขอบคุณ คุณ progamon นะครับ เดี๋ยวผมลองดูก่อน ได้ไม่ได้ยังไง เดี๋ยวมาตอบอีกทีนะครับ
Date :
2015-04-21 09:09:50
By :
conchidah
เอา โค๊ด มาดูด้วย ครับ จะได้รู้ว่าเขียนยังไงถึงเออเร่อร์
Date :
2015-04-22 19:51:42
By :
Chaidhanan
ตอบความคิดเห็นที่ : 4 เขียนโดย : Chaidhanan เมื่อวันที่ 2015-04-22 19:51:42
รายละเอียดของการตอบ ::
ตาม ข้างล่างนี้เลยครับ ผมเปลี่ยนเป็นชื่อตาราง leaves และวางโค๊ดไว้ตามด้านล่างนี้เลยครับ
<?php
Code (SQL)
select id_person,
sum(case when typeLeave = 'Sick' Then 1 else 0 end) as Sick,
sum(case when typeLeave = 'busin' Then 1 else 0 end) as business,
sum(case when typeLeave = 'Annua' Then 1 else 0 end) as annual
from leaves where lstToYear='2015' group by id_person;
?>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>แบบฟอร์มใบลาหยุดงาน</title>
...
...
...
ประวัติการแก้ไข 2015-04-23 09:18:04 2015-04-23 09:58:00
Date :
2015-04-23 08:52:22
By :
conchidah
55+ ตอนนี้ผม แก้ แปลงได้แล้วนะครับ ได้คำตอบตามต้องการแล้ว ขอบคุณ คุณ progamon มากนะครับ ที่เอาโค๊ดตัวอย่าง มาให้ดู
Code (PHP)
<?php
.......
.......
.......
$sql3=mysql_query("SELECT id_person,typeLeave,
sum(CASE WHEN typeLeave = 'Sick' THEN 1 else 0 end) as Sick,
sum(CASE WHEN typeLeave = 'business' THEN 1 else 0 end) as business,
sum(CASE WHEN typeLeave = 'Annual' THEN 1 else 0 end) as Annual
FROM leaves WHERE lstToYear='2015' AND id_person = '$id_person'
GROUP BY id_person ");
while($row2 = mysql_fetch_array($sql3)){
$id_person3=$row2['id_person'];
$Sick=$row2['Sick'];
$business=$row2['business'];
$Annual=$row2['Annual'];
?>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>แบบฟอร์มใบลาหยุดงาน</title>
...
...
...
ประวัติการแก้ไข 2015-04-24 19:36:00
Date :
2015-04-24 19:25:56
By :
conchidah
sum(CASE WHEN typeLeave = 'Sick' THEN 1 else 0 end) as Sick,
เขียนให้สั้นลงได้เหลือข้างล่าง
sum(typeLeave = 'Sick') as Sick,
Date :
2015-04-24 23:12:56
By :
Chaidhanan
Load balance : Server 03