【问题标题】:How can I get this MySQL query to work on MySQL 4.1.15?如何让这个 MySQL 查询在 MySQL 4.1.15 上工作?
【发布时间】:2012-04-17 02:08:48
【问题描述】:

以下查询适用于 MySql 5,但我的客户端使用的是 MySql 4.1.15,并且此查询因以下错误而阻塞:

#1140 - 混合 GROUP 列 (MIN(),MAX(),COUNT(),...) 如果没有 GROUP BY 子句,则 GROUP 列是非法的

升级客户端 MySql 版本不是一个选项顺便说一句。有人可以帮我重写它以在旧版本的 MySql 上工作吗?

SELECT 
   Sum( room_rev + room_rev_future ) as weekly_room_rev, 
   Sum( (`food_rev`) + (`beverage_rev`)) as weekly_catering_rev,
   (SELECT min_sales_persons 
   FROM bdp_hotel_min WHERE 
   bdp_hotel_min.hotel_num = bdp_scorecard.hotel_num 
   AND UNIX_TIMESTAMP(bdp_hotel_min.`min_override_week`) 
   < UNIX_TIMESTAMP("2011-12-02 23:59:59") 
   ORDER BY bdp_hotel_min.`min_override_week` DESC LIMIT 1 ) as override_persons,
   min_sales_persons 
FROM bdp_scorecard JOIN locations ON bdp_scorecard.hotel_num = locations.hotel_num 
WHERE bdp_scorecard.hotel_num =837 AND bdp_scorecard.hotel_num = 837 
AND UNIX_TIMESTAMP(bdp_scorecard.`created_date`) >= UNIX_TIMESTAMP("2011-11-26") 
AND UNIX_TIMESTAMP(bdp_scorecard.`created_date`) < UNIX_TIMESTAMP("2011-12-02 23:59:59") 

【问题讨论】:

    标签: mysql database


    【解决方案1】:

    无法测试,但考虑到错误似乎需要 group by ..

    SELECT 
       Sum( room_rev + room_rev_future ) as weekly_room_rev, 
       Sum( (`food_rev`) + (`beverage_rev`)) as weekly_catering_rev,
       (SELECT min_sales_persons 
       FROM bdp_hotel_min WHERE 
       bdp_hotel_min.hotel_num = bdp_scorecard.hotel_num 
       AND UNIX_TIMESTAMP(bdp_hotel_min.`min_override_week`) 
       < UNIX_TIMESTAMP("2011-12-02 23:59:59") 
       ORDER BY bdp_hotel_min.`min_override_week` DESC LIMIT 1 ) as override_persons,
       min_sales_persons 
    FROM bdp_scorecard JOIN locations ON bdp_scorecard.hotel_num = locations.hotel_num 
    WHERE bdp_scorecard.hotel_num =837 AND bdp_scorecard.hotel_num = 837 
    AND UNIX_TIMESTAMP(bdp_scorecard.`created_date`) >= UNIX_TIMESTAMP("2011-11-26") 
    AND UNIX_TIMESTAMP(bdp_scorecard.`created_date`) < UNIX_TIMESTAMP("2011-12-02 23:59:59")
    GROUP BY override_persons, min_sales_persons
    

    【讨论】:

      猜你喜欢
      • 2019-11-09
      • 2012-08-31
      • 2017-10-04
      • 2017-05-31
      • 2016-07-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多