SQL อยากรู้คำสั่งการ join ตารางแบบนี้ และการนับข้อมูลทั้งหมดจนถึงวันที่ระบุค่ะ
table1 และ table2 คุณใช้ รหัสอะไร (key) ในการ เชื่อม ระหว่าง table ครับ ขอดูฌครงสร้างหน่อยดิ
Date :
2012-11-26 13:15:10
By :
thep
ตอนนี้ join ได้แล้วค่ะ ต้องการแค่ส่วนนับจำนวนแถวทั้งหมดถึงวันที่ระบุ ยังทำไม่ได้เลย
อันนี้แค่ยกมาแค่คำสั่งของ table2 นะคะ ยังไม่ได้ join ค่ะ (ขอแค่คำสั่งส่วนนี้ก็พอค่า)
Code (SQL)
SELECT count(id) as count, date(start_date) as date FROM table2 GROUP BY date(start_date) ORDER BY start_date DESC
ผลออกมาได้แบบนี้ค่า จะเห็นว่ามันนับแค่จำนวน id ของเฉพาะวันนั้นค่ะ
ที่ต้องการคือแบบนี้ค่ะ..
| count | date |
| 383 | 2012-11-26 |
| 358 | 2012-11-25 |
| 260 | 2012-11-24 |
| 151 | 2012-11-23 |
| 82 | 2012-11-22 |
จำนวนรวมตั้งแต่วันแรกบวกทบไปเรื่อยๆ ของวันนั้นๆ อ่าค่า
ประวัติการแก้ไข 2012-11-26 14:19:17
Date :
2012-11-26 14:17:22
By :
cherrynaja
ภายใน sql น่าจะไม่มีคำสั่งที่ สามารถทำได้ถึงขนาดนั้น แต่ถ้าใช่ php ช่วยแสดงผลลัพธ์ น่าจะทำได้นะครับ
Date :
2012-11-26 14:32:31
By :
kokiflam
SELECT count(id) as count,year(start_date) as Yr,month(start_date) as Mn,day(start_date) as Dy FROM table2 GROUP BY year(start_date),month(start_date),day(start_date) ORDER BY year(start_date),month(start_date),day(start_date) DESC
ลองดูครับ
Date :
2012-11-26 14:35:51
By :
thep
php
Code (PHP)
<?php
$arr = array('82', '69', '109', '98', '25');
foreach($arr as $val){
echo $total += $val; // $val สมติว่าเป็นค่าฟิว์ $val
echo '<br />';
}
?>
Date :
2012-11-26 15:06:37
By :
ไวยวิทย์
$val สมมติว่าเป็นฟิวล์ count ครับ
มันก็จะวนลูปบวกไปจนครบแถวที่เลือกมาจากฐานข้อมูลครับ
Date :
2012-11-26 15:08:45
By :
ไวยวิทย์
Code (PHP)
<?
mysql_connect("localhost","root","1234");
mysql_select_db("test");
$sql = "select count(id) as count , date(date) as date from table2 group by date order by date desc ";
$rs = mysql_query($sql);
echo "<table><th>count</th><th>date</th>";
while($row = mysql_fetch_object($rs))
{
echo "<tr><td >".$row->count . "</td><td>" . $row->date . "</td></tr>";
}
echo "</table>";
$sql = "select count(id) as count from table2";
$rs = mysql_query($sql);
while($row = mysql_fetch_object($rs))
{
$count = $row->count;
}
$i = 0;
$sql = "select count(id) as count , date(date) as date from table2 group by date order by date desc ";
$rs = mysql_query($sql);
echo "<table><th>count</th><th>date</th>";
while($row = mysql_fetch_object($rs))
{
if($i == 0)
{
echo "<tr><td >". $count . "</td><td>" . $row->date . "</td></tr>";
}
else
{
$count = $count - $rowcount;
echo "<tr><td>". $count . "</td><td>" . $row->date . "</td></tr>";
}
$rowcount = $row->count;
$i++;
}
echo "</table>";
?>
ประมาณนี้อะครับ
Date :
2012-11-26 16:32:05
By :
kokiflam
Load balance : Server 02