select (sum(budget1) + sum(budget2) + sum(budget3) + sum(budget4) + sum(budget5)) as sm,b.name,year(decrease_date) as y,month(decrease_date) as m
from decrease as a left outer join tbgroup as b on a.group_id = b.group_id
group by b.name,year(decrease_date),month(decrease_date)
order by b.name,year(decrease_date),month(decrease_date) asc
select (sum(budget1) + sum(budget2) + sum(budget3) + sum(budget4) + sum(budget5)) as sm,b.name,year(decrease_date) as y,month(decrease_date) as m
from decrease as a left outer join tbgroup as b on a.group_id = b.group_id
where month(decrease_date) = month(now())
group by b.name,year(decrease_date),month(decrease_date)
order by b.name,year(decrease_date),month(decrease_date) asc
ตรง month(now()) ใน where month(decrease_date) = month(now()) เราอาจจะส่งค่าเดือนที่เราต้องการดูเข้าไป
mysql_select_db($database_money, $money);
$query_Oct1 = "SELECT sum(budget1)+sum(budget2)+ sum(budget3)+sum(budget4)+sum(budget5) as total, decrease.group_id, decrease.decrease_date FROM decrease WHERE decrease.decrease_date between '2012-10-01' and '2012-10-31' and group_id = 1 GROUP BY group_id";
$Oct1 = mysql_query($query_Oct1, $money) or die(mysql_error());
$row_Oct1 = mysql_fetch_assoc($Oct1);
$totalRows_Oct1 = mysql_num_rows($Oct1);
ลองทำอย่างนี้แล้วแยกทีละเดือน ทีละ group ผลออกมาก็ได้ค่ะ
แต่่ว่ามันต้องมี code แบบมหาศาลมากเลย
มีวิธีไหนบ้างค่ะ
ขอบคุณมากค่ะ
Date :
2012-10-11 14:59:39
By :
pum374
No. 6
Guest
มันต้องเอาไปใส่ array ครับ
เดี๋ยวทำ ตัวอย่างให้ดู ครับ
Date :
2012-10-11 15:17:40
By :
thep
No. 7
Guest
Code (PHP)
$i = 0;
$sql = "select count(*) as cnt from tbgroup";
$rs = mysql_query($sql,$conn);
$Cnt = mysql_result($rs, 0, 0 ); // หาจำนวน group name ทั้งหมด
$aryData[$Cnt][12]; // จำนวนเดือนที่มี = 12
$sql = "select name from tbgroup order by name asc";
$rs = mysql_query($sql,$conn) or die("Error Query [".$sql."]");
while ($objResult = mysql_fetch_array($rs)){
$aryData[$i][0] = $objResult["name"]; // เก็บค่า group name
$i += 1;
}
$sql = "select (sum(budget1) + sum(budget2) + sum(budget3) + sum(budget4) + sum(budget5)) as sm";
$sql .= ",b.name,year(decrease_date) as y,month(decrease_date) as m ";
$sql .= "from decrease as a left outer join tbgroup as b on a.group_id = b.group_id";
$sql .= "group by b.name,year(decrease_date),month(decrease_date)";
$sql .= "order by b.name,year(decrease_date),month(decrease_date) asc";
$rs = mysql_query($sql,$conn) or die("Error Query [".$sql."]");
while ($objResult = mysql_fetch_array($rs)){
for($i=0;$i<$Cnt;$i++){
if($aryData[$i][0] == $objResult["name"]){ // ถ้า group name เท่ากัน
$aryData[$i][$objResult["m"]] = $objResult["sm"]; // ให้เอา ข้อมูลที่ได้ ไปใส่ในช่อง array ของเดือน นั้นๆ
break;
}
}
}
echo "<table>";
echo "<tr>";
echo "<td>หมวด</td>";
for($i=1;$i<=12;$i++){
echo "<td>เดือน ".$i."</td>";
}
echo "</tr>";
for($i=0;$i<$Cnt;$i++){
echo "<tr>";
for($j=0;$j<=12;$j++){
echo "<td>".$aryData[$i][$j]."</td>";
}
echo "</tr>";
}
echo "</table>";
ลองดู ครับ ว่าใช้ได้ไหม? พอดีไม่มีข้อมูล test ก็เลยไม่รู้ว่า มี Error ตรงไหนหรือเปล่า