MySQL查询:多个日期范围的客户订单价值和订单计数

时间:2015-12-17 00:10:18

标签: 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

我需要扩展此查询以添加另外两列,其中包括SECOND日期范围(例如2015年和2014年)的每个客户的订单总数和总计值。我正在寻找的结果看起来像这样......

| company | email | ttl_order_value_2015 | ttl_order_count_2015 | ttl_order_value_2014 | ttl_order_count_2014 |
---------------------------------------------------------------------------------------------------------------

提前谢谢!

1 个答案:

答案 0 :(得分:1)

我已经提供了伪代码,需要进行一些修改,但应该根据您的要求进行操作。

注意:如果语法不起作用,则将SUM(o.total_value)删除为o.total_value。您可以通过编写一个简单的外部查询和分组

来使用SUM
<script type="text/javascript" src="js/jquery.validate.js"></script>
<?php if ( isset( $_GET['lang'] ) && 'fr' === $_GET['lang'] ) : ?>
  <script type="text/javascript" src="localization/messages_fr.js"></script>
<?php endif; ?>
<script type="text/javascript" src="js/script.js"></script>