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
ลองทำตามแล้วน่ะครับ ขึ้น #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 มีติดลบและไม่ติดลบถูกต้องตาม 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