สอบถามการ 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 แต่ยังเขียนคิวรี่ให้ได้ผลลัพธ์ตามรูปด้านล่างไม่ได้ครับ)



Hardalways 04-09-2017 16:14:30

คำแนะนำ และการใช้งาน

สมาชิก กรุณา ล็อกอินเข้าระบบ เพื่อตั้งคำถามใหม่ หรือ ตอบคำถาม สมาชิกใหม่ สมัครสมาชิกได้ที่ สมัครสมาชิก


  • ถาม-ตอบ กรุณา ล็อกอินเข้าระบบ
  • เปลี่ยน


    ( หรือ เข้าใช้งานผ่าน Social Login )

 ความคิดเห็นที่ 1
อาจจะต้องคิวรี่อีกรอบ เพื่อดึงรายการเดือนที่ยังไม่ได้ save มาแสดง

คิวรี่รอบแรก

SELECT
a.*,
SUM(a.amount),
COUNT(DISTINCT(a.monthid)),
GROUP_CONCAT(a.monthid) as monthsave
FROM tbl1 a 
GROUP BY a.proid 


คิวรี่ส่วนที่สอง เฉพาะดึงรายการเดือนที่ยังไม่มีข้อมูลมาแสดง

SELECT GROUP_CONCAT(b.monthname) FROM 
tbl2 b WHERE b.monthid NOT IN(เอาตัวแปรจาก monthsave มาใส่ในส่วนนี้)  GROUP BY IF(b.monthid,1,0)


ตัวอย่าง

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)


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


hardalways 05-09-2017 10:05






เว็บไซต์ของเราให้บริการเนื้อหาบทความสำหรับนักพัฒนา โดยพึ่งพารายได้เล็กน้อยจากการแสดงโฆษณา โปรดสนับสนุนเว็บไซต์ของเราด้วยการปิดการใช้งานตัวปิดกั้นโฆษณา (Disable Ads Blocker) ขอบคุณครับ