开发者社区> 问答> 正文

在查询中组合WHERE和HAVING子句

我有以下查询

SELECT  analysis, start, stop
FROM table     
GROUP BY start    
WHERE userid = 12 AND playerid = 67     
HAVING CAST(start AS date) = MAX(CAST(start AS date))    
ORDER BY start ;

开始和停止的类型是日期时间,例如 2016-10-23 00:00:00.000

当天我们有很多。我想在同一天(最后一天)开始/停止所有活动。

因此,我的逻辑是获取最大日期(= today)的所有开始和结束日期时间

因此,如果今天是2016-10-23开始和结束的全部

`2016-10-23 00:10:00.000`
`2016-10-23 00:20:00.000`
`2016-10-23 00:40:00.000`
`2016-10-23 00:80:00.000`

我得到的错误是 incorrect syntax near the keyword WHERE

我怎样才能解决这个问题?

谢谢

展开
收起
祖安文状元 2020-01-05 18:01:46 383 0
1 条回答
写回答
取消 提交回答
  • 您要选择日期为表中最大日期的所有行。一个主查询用于显示要显示的行,子查询在where子句中表示最长日期,

    select *
    from mytable
    where cast(start as date) = (select max(cast(start as date))
    
    2020-01-05 18:01:56
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载