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 > สอบถามการเขียน sub query ดึงข้อมูล โดยจะ sum point ข้อมูลในคอลัมโดยมีเงื่อนไขในการแสดงคะแนนครับ



 

สอบถามการเขียน sub query ดึงข้อมูล โดยจะ sum point ข้อมูลในคอลัมโดยมีเงื่อนไขในการแสดงคะแนนครับ

 



Topic : 131123



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

สมาชิกที่ใส่เสื้อไทยครีเอท

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




มีเรื่องสอบถามการเขียน mysql
ข้อมูลตาราง
ตาราง member
id | name
1 | สมชาย
2 | รักงาม

ตาราง order
id | member_id | status | point
1 | 1 | 1 | 50
1 | 1 | 1 | 60
1 | 1 | 2 | 20
1 | 2 | 2 | 10
1 | 2 | 1 | 30

*คอลัม status 1 =>เพิ่มคะแนน , 2 => ลบคะแนน

พอ query อยากได้ข้อมูลแบบด้านล่างครับ

member_id | point_all
สมชาย | 90 (เกิดจาก (50+60)-20)
รักงาม | 10 (เกิดจาก 30-10)

รบกวนพี่ๆ น้องแนะนำ sql หน่อยครับ

ขอบคุณครับ



Tag : PHP, MySQL









ประวัติการแก้ไข
2018-05-23 16:27:50
2018-05-23 16:27:51
Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2018-05-23 16:27:09 By : bigbababa View : 822 Reply : 4
 

 

No. 1



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

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

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

Code (SQL)
select id,name,sum(point) as point from(
	select m.*,case 
	when o.status=1 then o.point else (o.point*(-1)) end point
	from member m 
	left join order o on m.id=o.member_id
) group by id,name









ประวัติการแก้ไข
2018-05-23 16:42:57
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-05-23 16:42:21 By : mongkon.k
 


 

No. 2



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

สมาชิกที่ใส่เสื้อไทยครีเอท

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


ตอบความคิดเห็นที่ : 1 เขียนโดย : mongkon.k เมื่อวันที่ 2018-05-23 16:42:21
รายละเอียดของการตอบ ::
ลองทำตามแล้วน่ะครับ ขึ้น #1248 - Every derived table must have its own alias (เหมือนขาดการอ้างอิง tabel)
ผมเลยแก้ไข เป็น
Code (SQL)
select id,name,sum(me.point) as point from(
	select m.*,case 
	when o.status=1 then o.point else (o.point*(-1)) end points
	from member m 
	left join order o on m.id=o.member_id
) as me group by id,name

พอรัน ช่อง point เป็น 0 ทุกคนเลยครับ


รบกวนช่วยตรวจสอบให้หน่อยครับ ว่าผมทำอะไรผิดอีกไหมครับ


ประวัติการแก้ไข
2018-05-24 10:53:31
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-05-24 10:52:40 By : bigbababa
 

 

No. 3



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

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

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

ลองรันชุดนี้ดูก่อนว่า point มีติดลบและไม่ติดลบถูกต้องตาม status มั้ย
Code (SQL)
	select m.*,case 
	when o.status=1 then o.point else (o.point*(-1)) end points
	from member m 
	left join order o on m.id=o.member_id

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-05-24 13:46:19 By : mongkon.k
 


 

No. 4

Guest


Code (SQL)
select max(member.name) as name,sum(case when order.status = 1 then order.point else order.point*-1 end) as point_all 
from order left join member on member.id = order.id group by order.id

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-05-25 09:05:37 By : ten1312
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : สอบถามการเขียน sub query ดึงข้อมูล โดยจะ sum point ข้อมูลในคอลัมโดยมีเงื่อนไขในการแสดงคะแนนครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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 05
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 อัตราราคา คลิกที่นี่