 |
รบกวนสอบถามเกี่ยวกับคำสั่ง SQL ขึ้น error ช่วยชี้แนะให้ผมทีครับ |
|
 |
|
|
 |
 |
|
เอาโค้ดมาลงด้วยก็ดีนะครับส่วนมาก สแนปมาไม่ค่อยมีคนตอบ
|
 |
 |
 |
 |
Date :
2018-09-13 16:28:07 |
By :
nobetaking |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
Code (SQL)
SELECT tb_item.Item_id,tb_item.Item_code,tb_item.Item_detail,tb_item.Item_price,tb_item.Item_unit,tb_category.Cate_name,SUM(Redetail_amount) as qty,
(SELECT tb_item.Item_id,SUM(tb_receivedetail.Redetail_amount) FROM tb_receivedetail INNER JOIN tb_receive ON tb_receivedetail.Receive_id = tb_receive.Receive_id WHERE MONTH(Get_date) = '9' AND YEAR(Get_date) <= '2018') AS qty_2
FROM tb_receivedetail
INNER JOIN tb_receive ON tb_receivedetail.Receive_id = tb_receive.Receive_id
INNER JOIN tb_item ON tb_receivedetail.Item_id = tb_item.Item_id
INNER JOIN tb_category ON tb_item.Cate_id = tb_category.Cate_id
WHERE MONTH(Get_date) < '9' AND YEAR(Get_date) <= '2018'
GROUP BY Item_id
ขอโทษทีครับ
|
 |
 |
 |
 |
Date :
2018-09-13 16:31:53 |
By :
PACKLpk |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
Code (PHP)
Error operand
Check " >, >=, <,<=, +,-,*,/ "
WHERE MONTH(Get_date) = '9' AND YEAR(Get_date) <= '2018') AS qty_2
|
 |
 |
 |
 |
Date :
2018-09-13 16:44:36 |
By :
Hararock |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ลองเอา select ... ในวงเล็ป ไปรันดูต่างหากครับ มันมีมากกว่า 1 คอลัมน์ คือ Item_id กับ sum()
sub query ใน select clause ต้องมี result แค่ คอลัมน์เดียวครับ
|
 |
 |
 |
 |
Date :
2018-09-13 17:07:44 |
By :
Chaidhanan |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
Field ที่ Select ใน Sub Query แบบนี้ น่าจะ Select ได้แค่ 1 Field นะครับ
Code (SQL)
(SELECT tb_item.Item_id,SUM(tb_receivedetail.Redetail_amount) FROM tb_receivedetail INNER JOIN tb_receive ON tb_receivedetail.Receive_id = tb_receive.Receive_id WHERE MONTH(Get_date) = '9' AND YEAR(Get_date) <= '2018') AS qty_2
|
 |
 |
 |
 |
Date :
2018-09-13 17:15:42 |
By :
Jatmentz |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
เปลี่ยนวิธีเขียน statement ใหม่ครับ ไม่ควรจะต้องมี sub query ด้วยซ้ำไป
|
ประวัติการแก้ไข 2018-09-13 17:28:48
 |
 |
 |
 |
Date :
2018-09-13 17:16:28 |
By :
Chaidhanan |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
Code (SQL)
SELECT tb.Item_id,tb.Item_code,tb.Item_detail,tb.Item_price,tb.Item_unit
, ct.Cate_name, SUM(rd.Redetail_amount) as qty, (
select sum(dt.redetail_amount) from tb_receivedetail dt, tb_receive cv
where dt.Receive_id = cv.Receive_id
and MONTH(cv.Get_date) < '9' AND YEAR(cv.Get_date) <= '2018'
and dt.item_id=tb.item_id
) as qty2
FROM tb_receivedetail rd, tb_receive rc, tb_item tb, tb_category ct
where rd.Receive_id = rc.Receive_id
and rd.Item_id = tb.Item_id
and tb.Cate_id = ct.Cate_id
and MONTH(rc.Get_date) < '9' AND YEAR(rc.Get_date) <= '2018'
GROUP BY tb.Item_id
ปล เพิ่งเห็นว่าต้องการ เดือน 9 เป็น qty2
และเดาเอาว่า Get_Date เป็นวันที่ใน tb_receive ถ้าผิดก็แก้ให้ถูก ควรจะใช้ ชื่อตารางไว้หน้าฟีลด์ด้วย
เพื่ออนาคตจะมาอ่านโค๊ดตัวเอง แล้วลืม จะได้ช่วยความจำ แถมทำงานกับคนอื่นได้ง่ายด้วย
|
ประวัติการแก้ไข 2018-09-13 17:45:45 2018-09-13 17:46:13 2018-09-13 17:47:02
 |
 |
 |
 |
Date :
2018-09-13 17:37:04 |
By :
Chaidhanan |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|