select d.sale_id, s.mem_id,m.mem_name ,m.mem_lastname,sum(d.cost * d.sale_num)as total,m.share_amount
from sale_detial d, sale s,member m where s.sale_id= d.sale_id and m.Mem_ID = s.mem_id
group by d.sale_id ,s.mem_id,m.mem_name,m.mem_lastname,m.share_amount
?v=1001" border="0">
Tag : .NET, Ms SQL Server 2008, VS 2010 (.NET 4.x), Windows
ลองทำความเข้าใจ กับการ Sum แบบง่าย ๆ ดูก่อนนะครับ แล้วการเชื่อมตาราง แนะนำให้ใช้ Left Join นะครับ
ผมก็ไม่เคยใส่ Table หลัง From ต่อ ๆ กันครับ ส่วนใหญ่ถ้าจะเชื่อมตารางให้ใช้ Left Join
ตัวอย่างการ Sum แบบง่าย ๆ ดูก่อน เช่น
Code (SQL)
SELECT d.sale_id, sum(d.cost) as total FROM sale_detail d GROUP BY d.sale_id
พอเริ่มเข้าใจหลักแล้วให้ LEFT JOIN เข้าไป
Code (SQL)
SELECT d.sale_id, s.mem_id , m.mem_name , m.mem_lastname ,sum(d.cost) as total FROM sale_detail d
LEFT JOIN sale s ON s.sale_id = d.sale_id
LEFT JOIN member m ON m.Mem_ID = s.mem_id
GROUP BY d.sale_id , s.mem_id , m.mem_name , m.mem_lastname
select
DT.sale_id,DT.mem_id,DT.mem_name,DT.mem_lastname,sum(DT.total) AS Total, DT.share_amount
from
(
select d.sale_id, s.mem_id,m.mem_name ,m.mem_lastname,sum(d.cost * d.sale_num)as total,m.share_amount
from sale_detial d, sale s,member m where s.sale_id= d.sale_id and m.Mem_ID = s.mem_id
group by d.sale_id ,s.mem_id,m.mem_name,m.mem_lastname,m.share_amount) AS DT
)
group by DT.sale_id,DT.mem_id,DT.mem_name,DT.mem_lastname,DT.share_amount