mysql 根据日期分组后再分组统计数据

复制代码
-- 存在则删除重新创建存储过程
DROP PROCEDURE IF EXISTS get_goods_item_count;
-- 创建存储过程
CREATE PROCEDURE get_goods_item_count()
BEGIN
    SELECT
    date_format(FROM_UNIXTIME(create_time),'%Y-%m-%d') AS '日期',
    SUM( CASE WHEN goods_price = "198.00" THEN 1 ELSE 0 END ) "198总单数",
    SUM( CASE WHEN goods_price = "198.00" AND is_accept = 2 THEN 1 ELSE 0 END ) "198接单数",
    
    SUM( CASE WHEN goods_price = "258.00" THEN 1 ELSE 0 END ) "258总单数",
    SUM( CASE WHEN goods_price = "258.00" AND is_accept = 2 THEN 1 ELSE 0 END ) "258接单数",
    
    SUM( CASE WHEN goods_price = "298.00" THEN 1 ELSE 0 END ) "298总单数",
    SUM( CASE WHEN goods_price = "298.00" AND is_accept = 2 THEN 1 ELSE 0 END ) "298接单数",
    
    SUM( CASE WHEN goods_price = "398.00" THEN 1 ELSE 0 END ) "398总单数",
    SUM( CASE WHEN goods_price = "398.00" AND is_accept = 2 THEN 1 ELSE 0 END ) "398接单数",
    
    SUM( CASE WHEN goods_price = "498.00" THEN 1 ELSE 0 END ) "498总单数",
    SUM( CASE WHEN goods_price = "498.00" AND is_accept = 2 THEN 1 ELSE 0 END ) "498接单数",
        
    SUM( CASE WHEN goods_price = "598.00" THEN 1 ELSE 0 END ) "598总单数",
    SUM( CASE WHEN goods_price = "598.00" AND is_accept = 2 THEN 1 ELSE 0 END ) "598接单数",
    
    SUM( CASE WHEN goods_price = "698.00" THEN 1 ELSE 0 END ) "698总单数",
    SUM( CASE WHEN goods_price = "698.00" AND is_accept = 2 THEN 1 ELSE 0 END ) "698接单数"

FROM
    (SELECT id, goods_price, create_time, date_format(FROM_UNIXTIME(create_time),'%Y-%m-%d') AS date, is_accept FROM anmo_orders ORDER BY id desc) as t
GROUP BY t.date
ORDER BY date desc;
END;


-- 调用存储过程
CALL get_goods_item_count();

-- 查看全部存储过程
show PROCEDURE STATUS


    SELECT
    date_format(FROM_UNIXTIME(create_time),'%Y-%m-%d') AS '日期',
    SUM( CASE WHEN goods_price = "198.00" THEN 1 ELSE 0 END ) "198总单数",
    SUM( CASE WHEN goods_price = "198.00" AND is_accept = 2 THEN 1 ELSE 0 END ) "198接单数",
    
    SUM( CASE WHEN goods_price = "258.00" THEN 1 ELSE 0 END ) "258总单数",
    SUM( CASE WHEN goods_price = "258.00" AND is_accept = 2 THEN 1 ELSE 0 END ) "258接单数",
    
    SUM( CASE WHEN goods_price = "298.00" THEN 1 ELSE 0 END ) "298总单数",
    SUM( CASE WHEN goods_price = "298.00" AND is_accept = 2 THEN 1 ELSE 0 END ) "298接单数",
    
    SUM( CASE WHEN goods_price = "398.00" THEN 1 ELSE 0 END ) "398总单数",
    SUM( CASE WHEN goods_price = "398.00" AND is_accept = 2 THEN 1 ELSE 0 END ) "398接单数",
    
    SUM( CASE WHEN goods_price = "498.00" THEN 1 ELSE 0 END ) "498总单数",
    SUM( CASE WHEN goods_price = "498.00" AND is_accept = 2 THEN 1 ELSE 0 END ) "498接单数",
        
    SUM( CASE WHEN goods_price = "598.00" THEN 1 ELSE 0 END ) "598总单数",
    SUM( CASE WHEN goods_price = "598.00" AND is_accept = 2 THEN 1 ELSE 0 END ) "598接单数",
    
    SUM( CASE WHEN goods_price = "698.00" THEN 1 ELSE 0 END ) "698总单数",
    SUM( CASE WHEN goods_price = "698.00" AND is_accept = 2 THEN 1 ELSE 0 END ) "698接单数"

FROM
    (SELECT id, goods_price, create_time, date_format(FROM_UNIXTIME(create_time),'%Y-%m-%d') AS date, is_accept FROM anmo_orders ORDER BY id desc) as t
GROUP BY t.date
ORDER BY date desc
;

 
复制代码

 

posted @   -韩  阅读(449)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示