SUM ข้อมูลจาก 2 table โดยใช้ ปี เป็นตัวกำหนด ในให้ SUM จำนวนเงินของปี นั้นๆ

ถาม-ตอบ แนะนำไอเดียว โค้ดตัวอย่าง แนวทาง วิธีแก้ปัญหา SUM ข้อมูลจาก 2 table โดยใช้ ปี เป็นตัวกำหนด ในให้ SUM จำนวนเงินของปี นั้นๆ

SUM ข้อมูลจาก 2 table โดยใช้ ปี เป็นตัวกำหนด ในให้ SUM จำนวนเงินของปี นั้นๆ






เพิ่มเติมนะครับ อยากให้ ในกรณีที่ tb1(รายรับ) ไม่มีข้อมูลจำนวนเงินของปี 2560 เเต่ tb2(รายจ่าย) มี อยากให้ดึงข้อมูลที่มีของ tb2 ออกมา เเละในส่วนของ tb1 ก้ให้ว่างไปครับ


Attapol Khaiwluea 27-10-2020 21:31:13

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

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


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


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

 ความคิดเห็นที่ 1
ลองดูข้อมูลนี้เป็นแนวทาง

ข้อมูลตัวอย่าง

CREATE TABLE tbl1
    (`year` int, `income` int)
;
    
INSERT INTO tbl1
    (`year`, `income`)
VALUES
    (2557, 10),
    (2558, 20),
    (2559, 30),
    (2561, 50)
;

CREATE TABLE tbl2
    (`year` int, `expense` int)
;
    
INSERT INTO tbl2
    (`year`, `expense`)
VALUES
    (2557, 25),
    (2558, 50),
    (2559, 60),
    (2560, 70),
    (2561, 80)
;


คำสั่ง SQL

SELECT
  c.year,
  IFNULL(a.income,0) as income,
  IFNULL(b.expense,0) as expense,
  SUM(c.val) as sum
FROM
(
  SELECT
    a.year,a.income as val
  FROM tbl1 a
  UNION
  SELECT
    b.year,b.expense as val
  FROM tbl2 b
) as c
LEFT JOIN tbl1 a ON c.year = a.year
LEFT JOIN tbl2 b ON c.year = b.year
GROUP BY c.year


ตัวอย่างผลลัพธ์



ninenik 27-10-2020
 ความคิดเห็นที่ 2
ขอบคุนมากครับ


Attapol Khaiwluea 27-10-2020 22:31
 ความคิดเห็นที่ 3

เกือบได้เเล้วครับติดเเต่มัน SUM กันซ้ำซ้อนจนค่าที่ออกมามันไม่จริงครับ

--------------------------------------------------------------------------------------------------------------------------------------------------------
ตารางที่A                                                                                              ตารางที่B      


Attapol Khaiwluea 28-10-2020 01:05
 ความคิดเห็นที่ 4
ได้เเล้ว ครับ 


Attapol Khaiwluea 28-10-2020 09:27
1






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