สอบถามการ Query ข้อมูลในเดือนที่ขาดหายไป
ถาม-ตอบ แนะนำไอเดียว โค้ดตัวอย่าง แนวทาง วิธีแก้ปัญหา สอบถามการ Query ข้อมูลในเดือนที่ขาดหายไป
สอบถามการ Query ข้อมูลในเดือนที่ขาดหายไป
สมมติว่ามี Table อยู่ 2 Table ครับ


ตอนนี้ผมคิวรี่ผลลัพธ์ได้ตามรูปด้านล่าง ด้วยคิวรี่นี้ (select product_id, count(month_id) as จำนวนเดือนที่บันทึก (เดือน), sum(amount) as sum_amount from product where 1 group by product_id)

ปัญหาอยู่ที่ว่าผมต้องการเพิ่มการคิวรี่ให้ได้ผลลัพธ์เพิ่มตามรูปด้านล่าง อยากถามว่าต้องเขียนแบบไหนครับ ขอบคุณครับ (ผมเข้าใจว่าต้อง join กับ Table : Month แต่ยังเขียนคิวรี่ให้ได้ผลลัพธ์ตามรูปด้านล่างไม่ได้ครับ)


ตอนนี้ผมคิวรี่ผลลัพธ์ได้ตามรูปด้านล่าง ด้วยคิวรี่นี้ (select product_id, count(month_id) as จำนวนเดือนที่บันทึก (เดือน), sum(amount) as sum_amount from product where 1 group by product_id)

ปัญหาอยู่ที่ว่าผมต้องการเพิ่มการคิวรี่ให้ได้ผลลัพธ์เพิ่มตามรูปด้านล่าง อยากถามว่าต้องเขียนแบบไหนครับ ขอบคุณครับ (ผมเข้าใจว่าต้อง join กับ Table : Month แต่ยังเขียนคิวรี่ให้ได้ผลลัพธ์ตามรูปด้านล่างไม่ได้ครับ)


คำแนะนำ และการใช้งาน
สมาชิก กรุณา ล็อกอินเข้าระบบ เพื่อตั้งคำถามใหม่ หรือ ตอบคำถาม สมาชิกใหม่ สมัครสมาชิกได้ที่ สมัครสมาชิก
- ถาม-ตอบ กรุณา ล็อกอินเข้าระบบ
ความคิดเห็นที่
1
อาจจะต้องคิวรี่อีกรอบ เพื่อดึงรายการเดือนที่ยังไม่ได้ save มาแสดง
คิวรี่รอบแรก
คิวรี่ส่วนที่สอง เฉพาะดึงรายการเดือนที่ยังไม่มีข้อมูลมาแสดง
ตัวอย่าง
คิวรี่รอบแรก
1 2 3 4 5 6 7 | SELECT a.*, SUM (a.amount), COUNT ( DISTINCT (a.monthid)), GROUP_CONCAT(a.monthid) as monthsave FROM tbl1 a GROUP BY a.proid |
คิวรี่ส่วนที่สอง เฉพาะดึงรายการเดือนที่ยังไม่มีข้อมูลมาแสดง
1 2 | SELECT GROUP_CONCAT(b.monthname) FROM tbl2 b WHERE b.monthid NOT IN (เอาตัวแปรจาก monthsave มาใส่ในส่วนนี้) GROUP BY IF(b.monthid,1,0) |
ตัวอย่าง
1 2 | SELECT GROUP_CONCAT(b.monthname) FROM tbl2 b WHERE b.monthid NOT IN (1,2,3,4,5,6,7,8,9) GROUP BY IF(b.monthid,1,0) |

ความคิดเห็นที่
2
ขอบคุณมากครับ ถ้าอย่างนั้นก็ต้องใช้ php เข้าช่วย เพื่อปะค่าตัวแปร ไม่สามารถจบในคิวรี่เดียวได้ใช่ไหมครับ

ขอบคุณทุกการสนับสนุน
![]()