SQL联合查询实现统计功能

每一列都是sql统计的各种数据:

select b.wait_num,c.pay_num,d.back_num,e.finish_num,f.all_num,g.finish_price from orders as a
INNER JOIN
(select count(*) as wait_num from orders where trading_status=1) as b
ON b.wait_num>=0
INNER JOIN
(select count(*) as pay_num from orders where trading_status=5 or trading_status=3 or trading_status=4) as c
ON b.wait_num>=0
INNER JOIN
(select count(*) as back_num from orders where
trading_status=6 or trading_status=7 or trading_status=8 or trading_status=9 or trading_status=10) as d
ON b.wait_num>=0
INNER JOIN
(select count(*) as finish_num from orders where
trading_status=6 or trading_status=5) as e
ON b.wait_num>=0
INNER JOIN
(select count(*) as all_num from orders) as f
ON b.wait_num>=0
INNER JOIN
(select sum(total_price) as finish_price from orders where trading_status=5) as g
ON b.wait_num>=0
limit 0,1

效果如下:
这里写图片描述

a表用于显示结果列,通过表b的必然成立的条件与后面的各个表连接,然后用limit只显示第一行(各行内容相同)

猜你喜欢

转载自blog.csdn.net/yu_duan_hun/article/details/80771464