有三张表 分别为 会员表(member) 销售表(sale) 退货表(regoods)
会员表有字段 memberid (会员id,主键) credits(积分);
销售表有字段 memberid(会员id ,外键) 购买金额(MNAccount);
退货表中有字段memberid(会员id ,外键) 退货金额(RMNAccount);
业务说明 : 1、销售表中的销售记录可以是会员购买,也可是非会员购买。(即销售表中的memberid可以为空)
2、销售表中的一个会员可以有多条购买记录
3、退货表中的退货记录可以是会员,也可是非会员
4、一个会员可以有一条或多条退货记录

查询需求 : 分组查出销售表中所有会员购买金额,同时分组查出退货表中所有会员的退货金额,把会员id相同的购买金额-退款金额得到的结果更新到表会员表中对应会员的积分字段(credits)

SELECT
s.memberid,
s.y1,
s1.y2,
(s.y1 - s1.y2)
FROM
(
SELECT
y.memberid,
sum(y.MNAccount) y1
FROM
member d
LEFT JOIN sale y ON d.memberid = y.memberid
GROUP BY
y.memberid
) s
LEFT JOIN (
SELECT
y.memberid,
sum(y.RMNAccount) y2
FROM
member d
LEFT JOIN regoods y ON d.memberid = y.memberid
GROUP BY
y.memberid
) s1 ON s.memberid = s1.memberid


更多相关文章

  1. 数字金额转换成汉字

随机推荐

  1. android 自定义TextView实现秒级数字时钟
  2. Android之自定义适配器
  3. android 生成密钥 签名
  4. mono for android Main.axml
  5. Error: Could not find gradle wrapper w
  6. android developers api guides 文档学习
  7. android api
  8. 在android应用市场中直接定位到自己的应
  9. Android 去除头部标题栏
  10. Android -- Context(Application的应用)