 |
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 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|