Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 108,562

HOME > Java Programming > Java Forum > รบกวนหน่อยครับ ผมต้องการ sum ข้อมูลจากการเลือก id ที่เหมือนกันของหลายๆ ตาราง แล้วนำผลรวมของ id นั้นมาแสดงผลที่ jtable ครับ รบกวนทีครับ



 

รบกวนหน่อยครับ ผมต้องการ sum ข้อมูลจากการเลือก id ที่เหมือนกันของหลายๆ ตาราง แล้วนำผลรวมของ id นั้นมาแสดงผลที่ jtable ครับ รบกวนทีครับ

 



Topic : 125206



โพสกระทู้ ( 0 )
บทความ ( 0 )



สถานะออฟไลน์




ข้อมูล ตาราง 1
Table 1
id : data

1 10
2 20
3 30


ข้อมูลตาราง 2
Table 2
id : data

1 5
2 15
3 25


โดยเอา data ของ table 1 + table2 by id และแสดงใน jtable

jtable
id : data

1 15
2 35
3 55



Tag : Java, MySQL, JAVA







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2016-11-02 11:42:13 By : bn View : 967 Reply : 13
 

 

No. 1

Guest


Code
SELECT r.id, SUM(r.data) + COALESCE((SELECT SUM(s.data) FROM tb1 AS s WHERE r.id=s.id),0) as total FROM tb2 AS r GROUP BY r.id insert into tb3 (id, data) values (r.id, total)



ตามนี้ครับ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-11-02 13:43:46 By : limberger
 


 

No. 2

Guest


ลืมบอกไป
ในส่วนของ insert ตรง values ไปหาตัวรับค่าไว้ก่อนนะ
แล้วค่อยนำไปเก็บในอีกเทเบิ้ล
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-11-02 13:46:53 By : limberger
 

 

No. 3



โพสกระทู้ ( 0 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 2 เขียนโดย : limberger เมื่อวันที่ 2016-11-02 13:46:53
รายละเอียดของการตอบ ::
และถ้าพอดีมีหลายตารางอ่ะครับ แบบไม่ฟิคตารางตายตัว ทำให้มันวนลูปไปเรื่อยๆ ครับ โดยใช้ ลูป for มาช่วย ควรจะต้องแก้ไข code เพิ่มเติ่มยังไงบ้างครับ รบกวนทีนะครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-11-03 09:22:11 By : bn
 


 

No. 4

Guest


จะวนยังไงครับ

ยกตัวอย่างสักหน่อย
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-11-03 14:00:40 By : limberger
 


 

No. 5



โพสกระทู้ ( 0 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 4 เขียนโดย : limberger เมื่อวันที่ 2016-11-03 14:00:40
รายละเอียดของการตอบ ::
for(int i=1;i<=140;i++){
String sql="SELECT r.id, SUM(r.data) + COALESCE((SELECT SUM(s.data) FROM T1 AS s WHERE r.id=s.id),0) as Total FROM T2 AS r GROUP BY r.id";
สมมุติ มี 10 table ครับ จะกำหนดค่าตรง from และ where ยังไงครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-11-03 16:08:30 By : bn
 


 

No. 6

Guest


ต้องการเอา 10 table บวกกันภายในครั้งเดียว???
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-11-03 16:25:42 By : limberger
 


 

No. 7



โพสกระทู้ ( 0 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 6 เขียนโดย : limberger เมื่อวันที่ 2016-11-03 16:25:42
รายละเอียดของการตอบ ::
ใข่ครับ พอมีทางทำได้ไหมครับ ?

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-11-03 16:34:48 By : bn
 


 

No. 8

Guest


ได้ครับ ไม่ต้องใช้ for ไม่ต้องวนลูบ

คุณก็เขียน sub query ต่อจากที่ผมเขียนนั่นแหละ
แต่มันจะยาวหน่อย

หรือไม่ก็เขียนทีละกลุ่ม แล้วค่อย เอามาบวกกันต่อ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-11-03 16:52:22 By : limberger
 


 

No. 9



โพสกระทู้ ( 0 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 8 เขียนโดย : limberger เมื่อวันที่ 2016-11-03 16:52:22
รายละเอียดของการตอบ ::
ยังไงครับ ช่วยยกตัวอย่างให้ดูหน่อยครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-11-03 16:55:39 By : bn
 


 

No. 10

Guest


Code
SELECT r.id, SUM(r.data) + COALESCE((SELECT SUM(s.data) FROM tb1 AS s WHERE r.id=s.id),0) as total FROM tb2 AS r GROUP BY r.id insert into tt1 (id, data) values (r.id, total) SELECT r.id, SUM(r.data) + COALESCE((SELECT SUM(s.data) FROM tb3 AS s WHERE r.id=s.id),0) as total FROM tb4 AS r GROUP BY r.id insert into tt2 (id, data) values (r.id, total) . . . . SELECT r.id, SUM(r.data) + COALESCE((SELECT SUM(s.data) FROM tt1 AS s WHERE r.id=s.id),0) as total FROM tt2 AS r GROUP BY r.id insert into result1 (id, data) values (r.id, total) SELECT r.id, SUM(r.data) + COALESCE((SELECT SUM(s.data) FROM tt3 AS s WHERE r.id=s.id),0) as total FROM tt4 AS r GROUP BY r.id insert into result2 (id, data) values (r.id, total) Final SELECT r.id, SUM(r.data) + COALESCE((SELECT SUM(s.data) FROM result1 AS s WHERE r.id=s.id),0) as total FROM result2 AS r GROUP BY r.id insert into Final (id, data) values (r.id, total)

เขียนแบบนี้เข้าใจง่ายกว่า ในเวลาที่เรานั่งไล่อ่านโค้ด

ถ้าเขียนเป็น sub query ยาวๆ งงเป้นไก่ตาแตกแน่ ถ้าไม่เชี่ยชาญพอ



ปล. ผมคิดว่าคุณเขียน sql ไม่เป้นแน่ๆ ผมไกด์ให้ขนาดนี้แล้ว แต่คุณมองโจทย์ไม่ออก
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-11-03 17:01:42 By : limberger
 


 

No. 11



โพสกระทู้ ( 0 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 10 เขียนโดย : limberger เมื่อวันที่ 2016-11-03 17:01:42
รายละเอียดของการตอบ ::
ขอบคุณมากครับสำหรับคำแนะนำ พอดีพึ่งหัดเขียน java ครับ เป็นโปรเจคส่งอาจาร เลยงงๆ อยู่ครับ ขอบคุณมากนะครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-11-03 17:15:35 By : bn
 


 

No. 12



โพสกระทู้ ( 8,792 )
บทความ ( 2 )



สถานะออฟไลน์


Code (SQL)
select id, sum(data) from (
  select id, data from table1 union all
  select id, data from table2 union all
  select id, data from table3 union all
  select id, data from table4 union all
  select id, data from table5 union all
  select id, data from table6 union all
  select id, data from table7 union all
  select id, data from table8
) as tmp
group by id

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-11-03 23:13:03 By : Chaidhanan
 


 

No. 13

Guest


ถ้าบวกอย่างเดียว ก็ทำแบบพี่เชิดอนันต์
เอามา union ให้หมด แล้วค่อยบวก

แต่ที่ผมเขียนให้ สามารถเปลี่ยนเครื่องหมายทางคณิตศาสตร์ได้
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-11-10 17:25:12 By : limberger
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : รบกวนหน่อยครับ ผมต้องการ sum ข้อมูลจากการเลือก id ที่เหมือนกันของหลายๆ ตาราง แล้วนำผลรวมของ id นั้นมาแสดงผลที่ jtable ครับ รบกวนทีครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: Voake, Comcube, รับทำเว็บไซต์ รับเขียนโปรแกรม , pangpond.com , pangpond.co.th , สำนักงานบัญชี.com , รถมือสอง

Load balance : Server 00
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2021 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่