SQL Server查询到“ ftatten”数据以进行报告

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL Server查询到“ ftatten”数据以进行报告相关的知识,希望对你有一定的参考价值。

假设我有一个具有以下数据的表,结构如下。我正在尝试查询数据以查找某人(雇员)工作的日期范围。

  NAME     WORKED        DATE   
  Bob       YES         1/1/2019
  Bob       YES         1/2/2019
  Bob       YES         1/3/2019
  Bob       NO          1/4/2019
  Bob       YES         1/5/2019
  Bob       YES         1/6/2019
  Bob       NO          1/7/2019
  Jane      Yes         1/1/2019
  Jane      Yes         1/2/2019
  Jame      No          1/3/2019

预期结果:(我需要的结果)

Bob 1/1/2019 - 1/3/2019
Bob 1/5/2019 - 1/6/2019
Jane 1/1/2019 - 1/2/2019

返回此结果集的查询的SQL语法(SQL Server 2008+)是什么?提前谢谢

答案

这是一个孤岛问题。您可以使用row_number()和某些日期算法来识别行。

因此,假设每个日期都有一行:

select name, min(date), max(date)
from (select t.*,
             row_number() over (partition by name order by date) as seqnum
      from t
      where worked = 'YES'
     ) t
group by name,
         dateadd(day, - seqnum, date);

以上是关于SQL Server查询到“ ftatten”数据以进行报告的主要内容,如果未能解决你的问题,请参考以下文章

使用查询从 Microsoft SQL Server 导出数据到目标数据

sql server和oracle中查询结果返回指定行数的语句

sql server怎么导出查询结果为脚本

SQL Server 2008 查询将表数据从一个移动到另一个

不知道数据在sql server哪一个表内,如何查询。

SQL Server 复制(跨数据库查询和约束)