我们可以使用group by和where具有相同fieldname的条件

Tom*_*sie 8 sql t-sql sql-server sql-server-2008

我有一个要求,就是必须提取用户选择的日期范围内的所有记录,选择从2011年1月15日到2011年8月20日开始的所有员工以及按日期分组.

我应该如何为此编写SQL查询:

  SELECT *
    FROM employees 
   WHERE startdate >= '15-jan-2011' 
     AND startdate <= '20-aug-2011'
GROUP BY startdate
Run Code Online (Sandbox Code Playgroud)

Der*_*omm 16

绝对.它将导致过滤日期范围内的记录,然后在有数据的每一天对其进行分组.

应该注意的是,您只能选择startdate,然后选择您正在计算的聚合.否则,它应该工作得很好.

例如,此查询将为您提供每个startdate的员工计数:

SELECT startdate, count(*)
FROM employees 
WHERE startdate >= '15-jan-2011' 
      AND startdate <= '20-aug-2011'
GROUP BY startdate
Run Code Online (Sandbox Code Playgroud)