我需要根据以下查询获取每日销售报告..
这是我的表结构
orderid resid payment_type ordertotalprice orderdate
1 10 cod 50 2016-06-14
2 10 cod 10 2016-06-14
3 10 creditcard 40 2016-06-14
4 10 cod 30 2016-06-14
5 10 creditcard 20 2016-06-14
6 10 cod 10 2016-06-14
7 10 creditcard 20 2016-06-14
8 11 cod 10 2016-06-14
我需要使用上表输出结果。
resid total_orders_cnt total_sales total_orders_cash total_sales_cash total_orders_cc total_sales_cc
10 7 180 4 100 3 80
11 1 10 1 10 0 0
我使用下面的查询,但它没有得到我想要的确切结果。
SELECT COUNT(orderid) AS total_orders_cnt, SUM(ordertotalprice) AS total_sales,
SUM(CASE WHEN (payment_type= 'cod') THEN 1 ELSE 0 END) AS total_orders_cash,
CASE WHEN (payment_type= 'cod') THEN SUM(ordertotalprice) ELSE 0 END AS total_sales_cash,
SUM(CASE WHEN (payment_type = 'creditcard') THEN 1 ELSE 0 END) total_orders_cc,
CASE WHEN (payment_type = 'creditcard') THEN SUM(ordertotalprice) ELSE 0 END AS total_sales_cc
FROM order WHERE resid='10' AND orderdate = '2016-06-14';
所以请任何人帮助我。
提前致谢
答案 0 :(得分:1)
尝试这种方式:
SELECT COUNT(orderid) AS total_orders_cnt,
SUM(ordertotalprice) AS total_sales,
SUM(CASE WHEN payment_type = 'cod' THEN 1 ELSE 0 END) AS total_orders_cash,
SUM(CASE WHEN payment_type = 'cod' THEN ordertotalprice END) AS total_sales_cash,
SUM(CASE WHEN payment_type = 'creditcard' THEN 1 ELSE 0 END) total_orders_cc,
SUM(CASE WHEN payment_type = 'creditcard' THEN ordertotalprice END) AS total_sales_cc
FROM order
WHERE resid = '10' AND orderdate = '2016-06-14';