0
我有以下查询,该查询对于在定义的时间段内返回每位客户的订单数和价值非常有用。MySQL查询:多个日期范围的客户订单值和订单计数
SELECT
c.company,
c.email,
SUM(o.total_value) AS ttl_order_value,
COUNT(p.order_id) AS ttl_order_count
FROM merch_orders_ist AS o
INNER JOIN contacts_ern AS c
ON (o.contact_id = c.contactid)
INNER JOIN merch_payments_ist AS p
ON (o.id = p.order_id)
WHERE DATE(p.date_of_payment) BETWEEN '2014-01-01' AND '2014-12-31'
GROUP BY c.contactid
ORDER BY ttl_order_value DESC
我需要扩展该查询添加两个更多的列,其包括顺序总数和用于第二日期范围(例如2015和2014)每客户的订单的求和值。我期待的结果看起来像这样...
| company | email | ttl_order_value_2015 | ttl_order_count_2015 | ttl_order_value_2014 | ttl_order_count_2014 |
---------------------------------------------------------------------------------------------------------------
在此先感谢您!
感谢您的回复和建议@avi。不幸的是,我对DECODE语句有些遗憾。我假设你说我应该在MySQL语句的那部分中使用子选择? – Spencer
@Spencer我的肉是使用Decode或Case语句编写简单的查询语句,然后在该查询语句的上方写入SUM和Count函数。从(选择a,b,解码(日期,2014,C,0),解码(日期,2014,D,0))中选择A,B,sum(c),Count(D) table1 ...)组由A,B组成 – Avi