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

Registered : 109,037

HOME > PHP > PHP Forum > รบกวนช่วยหน่อยครับ อยากคำนวณผลรวม 2 ตาราง แล้ว- กัน เอาค่าที่-กันได้อัพเดทเข้าตารางแรกครับ



 

รบกวนช่วยหน่อยครับ อยากคำนวณผลรวม 2 ตาราง แล้ว- กัน เอาค่าที่-กันได้อัพเดทเข้าตารางแรกครับ

 



Topic : 112908



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



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




ขอรบกวนหน่อยนะครับผมมี
Table rairub
มี Field
User----------moneyrub----------total
ball ---------------10
ball----------------10
lek -----------------5
ball-----------------5
lek -----------------10

Table raijai
มี Field
User----------------------moneyjai
ball----------------------------5
ball----------------------------15
lek-----------------------------5
lek-----------------------------10

ผมจะเขียน SQL เพื่อ ดึงค่า ตาราง rairub และ ตาราง raijai โดยที่เป็น User เดียวกัน
เพื่อให้นำ จำนวนรวม ทั้ง 2 ตารางมา - กัน และ อัพเดทลงไปใน ตาราง rairub.Total ได้อย่างไรครับ
ให้ Total จากตาราง rairub มีค่าดั้งนี้
User---------------moneyrub---------------moneyjai---------------Total
ball--------------------25------------------------20----------------------5
lek---------------------15------------------------15----------------------0
รบกวนขอความรู้ด้วยครับ
ขอบคุณครับ



Tag : PHP, MySQL









ประวัติการแก้ไข
2014-11-27 21:06:09
2014-11-27 21:09:06
Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2014-11-27 21:03:49 By : suapchan View : 2156 Reply : 18
 

 

No. 1



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



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


Code (SQL)
select
sum(a.moneyrub) as moneyrub, sum(b.moneyjai) as moneyjai , sum(a.moneyrub) - sum(b.moneyjai) as Total
from rairub as a
left join raijai as b on (b.User = a.User)
group by a.User


น่าจะแบบนี้นะคับ ลองดูคับ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-11-27 21:42:00 By : moomoohorn
 


 

No. 2



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



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


ตอบความคิดเห็นที่ : 1 เขียนโดย : moomoohorn เมื่อวันที่ 2014-11-27 21:42:00
รายละเอียดของการตอบ ::
ขอบคุณมากครับจะลองไปใช้ดูนะครับผมขอบคุณจิงๆทุกท่านที่ผ่านมาดูด้วยนะครับขอให้ผลบุญกุศลดลบรรดารให้ทุกท่านมีความสุขความเจริญนะครับถ้าใครมี แบบอื่นก็ขออีกนะครับ ขอกราบแทบเท้าทุกท่านครับ



ประวัติการแก้ไข
2014-11-27 21:46:39
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-11-27 21:46:10 By : suapchan
 

 

No. 3



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



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


Code (SQL)
select
sum(a.moneyrub) as moneyrub, sum(b.moneyjai) as moneyjai , sum(a.moneyrub) - sum(b.moneyjai) as Total
from rairub as a
left join raijai as b on (b.User = a.User)
group by a.User



ขอรบกวนอีกนิดนะครับทุกท่านที่เคารพผมลองใส่SQL แบบข้างบนแล้วเหมือนค่าที่ได้มันคาดเคลือนหรือเพราะค่าที่แท้ทั้งหมดในฐานข้อมูลมันเยอะมากรึเปล่าอ่าครับผมเก็บไฟตัวเลขเป็นFoatไม่ทราบว่าผมผิดตรงไหนรึเปล่า

ขอขอบคุณทุกท่านที่แสดงความคิดเห็นนะครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-11-27 22:47:50 By : suapchan
 


 

No. 4



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



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


เนื่องจาก 2 ตาราง บางคนอาจรับอยางเดียว บางคนอาจจ่ายอย่างเดียว
คำสั่ง sum() left join อาจได้ค่า null มาทำให้ผลผิดผลาดได้
และการใช้ left อาจไม่รองรับกับการทำงาน ให้เปลี่ยนเป็น แบบข้างล่างครับ

Code (SQL)
select
a.User,
sum(coalesce( a.moneyrub , 0) ) as moneyrub , 
sum(coalesce( b.moneyjai , 0) ) as moneyjai ,
sum(coalesce( a.moneyrub , 0) - coalesce( b.moneyjai , 0) ) as Total
from rairub as a
FULL OUTER JOIN raijai as b on (b.User = a.User)
group by a.User 


ปล. หรือจะลองอีกแบบ แบบนี้ไม่มีค่า null
Code (SQL)
select
User,
sum( rub ) as moneyrub , 
sum( jai ) as moneyjai ,
sum( rub - jai ) as Total
from (
select User, moneyrub rub, 0 jai from rairub
union all
select User, 0, moneyjai from raijai
) a
group by User 


ปล. อีกครั้่ง ลืม ่ส่วน insert
Code (SQL)
insert into total 
#ต่อด้วย โค๊ดที่เลือกของ สองโค๊ดบน



ประวัติการแก้ไข
2014-11-28 07:24:38
2014-11-28 07:29:35
2014-11-28 21:55:55
2014-11-28 21:56:39
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-11-28 07:09:16 By : Chaidhanan
 


 

No. 5



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



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


ตอบความคิดเห็นที่ : 4 เขียนโดย : Chaidhanan เมื่อวันที่ 2014-11-28 07:09:16
รายละเอียดของการตอบ ::
ขอบคุณ คุณChaidhanan มากครับ แต่พอผมเอาโค้ดไปรันมันขึ้นแบบนี้ ผมใส่ผิดไปรึเปล่าคับช่วยดูหน่อยนะครับขอร้อง พอดีเป็นมือใหม่เลยแก้ไรไม่ค่อยเป็น

ผิดพลาด
คำค้น SQL: เอกสารอ้างอิง

SELECT a.User, SUM( COALESCE( a.moneyrub, 0 ) ) AS moneyrub, SUM( COALESCE( b.moneyjai, 0 ) ) AS moneyjai, SUM( COALESCE( a.moneyrub, 0 ) - COALESCE( b.moneyjai, 0 ) ) AS Total
FROM rairub AS a
FULL OUTER JOIN raijai AS b ON ( b.User = a.User )
GROUP BY User
LIMIT 0 , 30

MySQL แสดง: เอกสารอ้างอิง

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FULL OUTER JOIN raijai as b on ( b.User = a.User ) group by a.User
LIMIT 0, 30' at line 1



ประวัติการแก้ไข
2014-11-28 11:37:18
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-11-28 11:36:48 By : suapchan
 


 

No. 6



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



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


mysql version ไหนครับ งั้นเอา โค๊ดตัวที่สองละกันครับ 5555


ประวัติการแก้ไข
2014-11-28 12:34:59
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-11-28 12:34:29 By : Chaidhanan
 


 

No. 7



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



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


ตอบความคิดเห็นที่ : 6 เขียนโดย : Chaidhanan เมื่อวันที่ 2014-11-28 12:34:29
รายละเอียดของการตอบ ::
มันก็ขึ้นเหมือนกันอ่าครับ ส่วนผมใช้ phpMyAdmin - 2.10.3
ผิดพลาด
คำค้น SQL: เอกสารอ้างอิง

SELECT User, SUM( rub ) AS moneyrub, SUM( jai ) AS moneyjai, SUM( rub - jai ) AS Total
FROM (


SELECT User, moneyrub rub, 0jai
FROM rairub unoin
ALL SELECT User, 0, moneyjai
FROM raijai
)a
GROUP BY User
LIMIT 0 , 30
MySQL แสดง: เอกสารอ้างอิง

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'all select User , 0 , moneyjai from raijai ) a group by User
LIMIT 0, 30' at line 1


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-11-28 12:44:25 By : suapchan
 


 

No. 8



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



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


FROM rairub unoin ขอโทษครับสกดผิด

union ครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-11-28 12:47:56 By : Chaidhanan
 


 

No. 9



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



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


ตอบความคิดเห็นที่ : 8 เขียนโดย : Chaidhanan เมื่อวันที่ 2014-11-28 12:47:56
รายละเอียดของการตอบ ::
รบกวนอีกนิดนะครั ตรง insert into total ใส่ตรงไหนของโค้ดหรอครับต่อท้ายตัวไหนครับ แล้วผมลองเปลียนเป็น union แล้วครับไม่เออเรอแต่ไม่แสดงผลอะไรเลยครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-11-28 21:37:41 By : suapchan
 


 

No. 10



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



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


join
INSERT INTO `rairub` (`code`, `User`, `moneyrub`) VALUES
(1, 'ball', 10),
(2, 'lek', 20),
(3, 'ball', 30),
(4, 'lek', 100);

INSERT INTO `raijai` (`code`, `User`, `moneyjai`) VALUES
(1, 'lek', 10),
(2, 'lek', 20),
(3, 'lek', 30),
(4, 'ball', 10);



Code (SQL)
insert into total
select
User,
sum( rub ) as moneyrub , 
sum( jai ) as moneyjai ,
sum( rub - jai ) as Total
from (
select User, moneyrub rub, 0 jai from rairub
union all
select User, 0, moneyjai from raijai
) a
group by User 


หมายเหตุ ต้อง สร้างตาราง total เตรียมไว้ก่อนนะครับ


ประวัติการแก้ไข
2014-11-28 22:04:49
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-11-28 22:01:13 By : Chaidhanan
 


 

No. 11



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



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


ตอบความคิดเห็นที่ : 10 เขียนโดย : Chaidhanan เมื่อวันที่ 2014-11-28 22:01:13
รายละเอียดของการตอบ ::
.สงสัยเป็นที่ผมเองแหละมั้งครับ มันไม่ขึ้น ขอบคุณมากครับ ยัง งงอยู่เลย 5555+

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-11-28 22:16:52 By : suapchan
 


 

No. 12



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



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


ตอบความคิดเห็นที่ : 10 เขียนโดย : Chaidhanan เมื่อวันที่ 2014-11-28 22:01:13
รายละเอียดของการตอบ ::
... ขอถามอีกนิดนะครับเรามีวิธีเอาค่าจากโค้ดข้างล่างนี้ ไปใส่ใน ฟิลTotal จากตาราง rairubไหมครับ

SELECT rairub.*, SUM(moneyrub) As Total
FROM rairub GROUP BY USER


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-11-28 23:17:01 By : suapchan
 


 

No. 13



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



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


ตอบความคิดเห็นที่ : 12 เขียนโดย : suapchan เมื่อวันที่ 2014-11-28 23:17:01
รายละเอียดของการตอบ ::
อธิบายให้ชัดเจนครับ ตาราง total หรือ ฟีลด์ total
ถ้าเป็น ตาราง total เข้า ฟีลด์อะไร
และถ้าเป้น ฟีลด์ total เข้าตารางอะไร



และ rairub.* มี ฟีลด์ อะไรบ้าง จำนวน ฟีลด์ตรงกันกับ ตาราง total หรือไม่

ถ้าเป็นไปได้ แตก * เป็นชื่อฟีลด์ย่อยๆ ครับ ให้ชัดเจน ตรงกันกับ ตาราง total

ส่วนคำสั่ง ก็คือ
Code (SQL)
insert into total
select user, moneyrub, sum(moneyrub) from rairub


ปล.
ที่ต้องเน้นเรื่องจำนวนฟิลด์ ของ ตาราง เพราะผมไม่รู้ว่าที่เอามาให้ดูเป็นตัวอย่างหรือของจริง

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-11-29 08:18:34 By : Chaidhanan
 


 

No. 14



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



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


ตอบความคิดเห็นที่ : 13 เขียนโดย : Chaidhanan เมื่อวันที่ 2014-11-29 08:18:34
รายละเอียดของการตอบ ::
...ได้แล้วครับ ขอบคุณ คุณChaidhananมากครับเป็นเพราะว่าตาราง total ผมชื่อไม่ตรงกับที่ insert ตอนแรกพอเปลียนชื่อแล้ว รันได้ครับ ขอบคุณมากครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-11-29 23:28:32 By : suapchan
 


 

No. 15

Guest


ตอบความคิดเห็นที่ : 13 เขียนโดย : Chaidhanan เมื่อวันที่ 2014-11-29 08:18:34
รายละเอียดของการตอบ ::
... แล้วถ้า user เพิ่มจ้อมูลรายรัยรายจ่าย แล้ว แต่ตาราง total มันไม่อัปเดต ตามตารางรายรับรายจ่าย ทำไงอ่าครับ เช่น ตอน insert เข้า total รายรับ 500 รายจ่าย 250 ผลรวม250 แต่พอ user เพิ่มข้อมูลอีกเป็นรายรับ 200 รวมอันเก่าเป็น 700 แต่ในตาราง total ยังเป็น 500 อยุ่เลยทำยังไงครับ ขอความรู้หน่อย

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-11-30 19:20:02 By : manutd28215
 


 

No. 16



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



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


ถ้าเป็นผม ผมไม่สร้าง ตาราง total ครับ ผมจะใช้การคิวรี่ทุกครั้ง อยากเพิ่มเพิ่มได้เลย อยากลบก็ลบ
ถึงเวลาอยากได้ผลลัพธ์ ค่อยคิวรี่มาโชว์ครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-11-30 19:53:36 By : Chaidhanan
 


 

No. 17



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



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


ตอบความคิดเห็นที่ : 16 เขียนโดย : Chaidhanan เมื่อวันที่ 2014-11-30 19:53:36
รายละเอียดของการตอบ ::
... ผมไม่รู้จิงๆว่าจะคิวรี่ยังไง หรือใส่แบบไหนให้แสดงผล

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-11-30 20:55:59 By : suapchan
 


 

No. 18



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



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


แล้วที่คุณคิวรี่ เอาใส total คุณทำอย่างไร ก็ทำแบบนั้น แต่ไม่ต้องเอาเข้า total เท่านั้นแหล่ะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-11-30 21:11:48 By : Chaidhanan
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : รบกวนช่วยหน่อยครับ อยากคำนวณผลรวม 2 ตาราง แล้ว- กัน เอาค่าที่-กันได้อัพเดทเข้าตารางแรกครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

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