มีค่า ซ้ำกัน อยู่ 3 ฟิวด์ ถ้าเรา จะ Group by ก็สามารถทำได้แค่ ฟิวด์ เดียว ถ้าเราอยาก ทำทั้งสาม ฟิวด์ จะทำอย่างไร คับ
มีค่า ซ้ำกัน อยู่ 3 ฟิวด์ ถ้าเรา จะ Group by ก็สามารถทำได้แค่ ฟิวด์ เดียว ถ้าเราอยาก ทำทั้งสาม ฟิวด์ จะทำอย่างไร คับ
มีฟิวด์ที่ซ้ำกัน 3 ฟิวด์
ฟิวด์ รหัส , ฟิวชื่อ , ฟิวด์บิล , ฟิวด์จำนวนเงิน
อยากให้ ออกมาแบบนี้ ครับ
รหัส , ชื่อบริษัท , บิล , จำนวนเงิน
942 , บริษัท เอ , 2 , 6173
928 , บริษัท สวัสดี , 12 , 79648Tag : PHP, HTML/CSS, JavaScript, Action Script, Ajax, jQuery
Date :
2014-10-06 10:48:01
By :
031130
View :
3653
Reply :
12
ลองแบบนี้ยัง
Code (PHP)
GROUP BY ตาราง.ฟิลด์, ตาราง.ฟิลด์, ตาราง.ฟิลด์
Date :
2014-10-06 10:58:18
By :
sabaitip
ลองแล้ว ครับ ถ้า group by ตัวใดตัวหนึ่งได้ สองตัว ไม่ได้ครับ
Date :
2014-10-06 15:12:08
By :
031130
ลองมานั่งอ่านใหม่อีกรอบ
อยากให้ ออกมาแบบนี้ ครับ
รหัส , ชื่อบริษัท , บิล , จำนวนเงิน
942 , บริษัท เอ , 2 , 6173
928 , บริษัท สวัสดี , 12 , 79648
ทำไมไม่ group by รหัส
แล้วก็ sum บิล กับ เงิน อ่ะครับ ทำไมต้อง group by 3 ฟิลด์
Date :
2014-10-06 16:01:15
By :
sabaitip
select id, name, sum(bill) s_bill, sum(amount) as s_amt from table group by id, name
Date :
2014-10-06 20:42:10
By :
Chaidhanan
ผมลืม บอกไปว่า บิล ซ้ำกัน เงินก็ซ้ำกัน ครับ เลย ทำแบบที่แนะนำไม่ได้
เก็บใน DB แบบนี้ ครับ
Date :
2014-10-07 10:35:09
By :
031130
แล้วไม่สร้าง unique ไว้ควบคุม id , bill ละครับจะได้ไ่ม่ซ้ำกัน
สำหรับตอนนี้วิธีแก้ ก็ กลุุ๊ป มันออกมา เอาส่วนที่เหมือนกันมาใช้
Code (SQL)
select( id, count(code), sum(amt) from
(select id, code, amt from table group by id, code, amt) as tmp
group by id
Date :
2014-10-07 12:15:53
By :
Chaidhanan
ลองแล้ว error คับ
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'from
(select id, code, amt from table group by' at line 1
Date :
2014-10-07 15:06:52
By :
031130
เอ่อคือว่าโค๊ดผมเป็นตัวอย่างครับ สำหรับชื่อ field ปรับให้ตรงตามความเป็นจริงนะครับ
อย่าง from table เนี่ย table คุณต้องเอาชื่อจริงๆ ที่ใช้งานมาใส่แทน
id code amt นี่ก็เหมือนกันครับ ต้องเอาชื่อฟีลด์จริงๆ มาใส่ครับ
ผมแค่อ่านและทำความเข้าใจโจทย์ แล้วมาเขียนตัวอย่างให้นำไปปรับใช้เท่านั้นครับ
Date :
2014-10-07 20:32:38
By :
Chaidhanan
ตอนนี้ ผลลัพธ์ ออกมาตรงแล้ว ครับ แต่ ที่ยังขาดคือ $sum_vat บวกกันเกิน ครับ ตอนนี้ยังทำไม่ได้ รบกวน แนะนำด้วย ครับ
Code (PHP)
$sqll_="SELECT Distinct(stock_num_run), sum_vat ,stock_date
from `table`
Group by stock_num_run DESC"
$query_1=mysql_query($sqll_);
$numrow = mysql_num_rows($query_1);
$i=1;
while($array_1=mysql_fetch_array($query_1)){
$sum_vat=$array_1['sum_vat'];
echo $sum_vat;
// ผลลัพธ์ จะออกมาเป็น 100 200 300
}
แต่อยากให้ sum_vat บวกกัน ครับ
Date :
2014-10-14 14:15:02
By :
031130
ลองเอาตัวอย่างโค๊ด และ function ที่ผมเขียนให้ ดู ไปศึกษาหรือยังครับ ถ้ายังก็ลองศึกษาดูนะครับ
แค่นำไปปรับใช้ แทนที่ ชื่อตาราง ชื่อฟีลด์ที่ต้องการ ก็ได้แล้วครับ
โค๊ด คห 6
แต่ที่ยังติดปัญหาเพราะไม่ได้เอาสิ่งที่มีคนบอกไปศึกษาดูเลยมากกว่านะครับ
ปล. และดูจากโค๊ด ที่เขียน มันมั่วจนไม่รู้ว่าคุณกำลังทำอะไรอยู่
เอา distinct มาผสม กับ group by
เอา desc มาต่อ field group by
มันเหมือนกับคุณจับ โค๊ดมาเรียงกัน โดยไม่ได้อ่าน document ของ SQL เลยซักนิด
ประวัติการแก้ไข 2014-10-14 14:25:49 2014-10-14 14:28:57
Date :
2014-10-14 14:25:12
By :
Chaidhanan
ลองเปลี่ยนตามที่แนะนำแล้ว คับ ผลไม่ออก
Code (PHP)
$sqll_="select(stock_name, count(stock_num_run), sum(sum_vat) from
(select stock_name, stock_num_run, sum_vat from `table`
group by stock_name, stock_num_run, sum_vat) AS tmp";
ประวัติการแก้ไข 2014-10-14 14:55:34
Date :
2014-10-14 14:53:38
By :
031130
$sqll_="select ( stock_name, count(stock_num_run), sum(sum_vat) from
(select stock_name, stock_num_run, sum_vat from `table`
group by stock_name, stock_num_run, sum_vat ) AS tmp";
วงเล็บเปิด สีแดง เอาไว้ทำไมครับ
แล้วโค๊ดบันทัดล่างนีี้
$query_1=mysql_query($sqll_);
เปลี่ยนเป็น
$query_1=mysql_query($sqll_) or die( $sqll ."<br>\n" . mysql_error());
จะได้แสดง error ให้เห็นครับว่าทำอะไรผิด
Date :
2014-10-14 15:00:11
By :
Chaidhanan
Load balance : Server 04