【发布时间】:2011-06-26 20:32:39
【问题描述】:
产品表
id name description price
1 AAA AAAAAA 10.00
2 BBB BBBBBB 12.00
3 CCC CCCCCC 15.00
4 DDD DDDDDD 8.00
5 EEE EEEEEE 12.50
销售表
trackid productid affiliateid paymentstatus refundid
1 2 1 COMPLETED 1
2 2 0 DONE null
3 3 1 COMPLETED null
4 3 0 COMPLETED null
5 3 0 COMPLETED null
6 5 5 DONE null
7 5 0 COMPLETED 2
8 5 2 COMPLETED null
9 2 0 DONE null
10 3 1 COMPLETED 3
对于销售表
如果特定销售没有关联公司,则affiliateid 将为 0,否则为affiliateid(我有另一个用户表,其中列出了供应商和关联公司)
如果特定销售被退款(出于任何原因),则refundid 将设置为某个值,否则将为空
paymentstatus 可以有 2 个值中的任何 1 个,COMPLETED 和 DONE
现在我需要查询列出产品表中每个产品的以下数据
productid name totalsales affsales refunds
1 AAA 0 0 0
2 BBB 1 1 1
3 CCC 4 2 1
4 DDD 0 0 0
5 EEE 2 1 1
totalsales:付款状态为“已完成”的销售额
affsales:付款状态为“已完成”且affiliateid 不等于 0 的销售
refunds:paymentstatus 为“COMPLETED”且refundid 不为空的销售
我怎样才能形成这个特定的查询?
【问题讨论】: