小编EAg*_*rre的帖子

SQL:如何计算可能重叠的日期范围之间的唯一天数?

我有一个棘手的问题。我有一个社会保障缴款表如下(SQL Fiddle

    IdPersona   fecha_ingreso   fecha_egreso
5690180         01/01/1987      30/11/2012
5690180         01/01/2010      30/11/2012
5690180         11/06/2012      15/11/2012
5690180         12/04/2012      25/04/2012
5690180         16/03/2012      30/03/2012
5690180         18/06/2011      15/10/2011
5690180         20/12/2012      20/01/2013
5690180         21/11/2012      15/12/2012
Run Code Online (Sandbox Code Playgroud)

每行代表一个人的工作。个人可能同时拥有不止一份工作。我需要计算每个人在特定时期内做出的贡献天数,例如在去年,问题是我必须只计算不同的贡献天数,而不是对一个人在同一天多次计算。我怎样才能做到这一点?


概述可能的解决方案来计算天数但不是唯一的 1-定义日期范围,一个时间窗口,用于计算人们所做的贡献。2-对于每个响应者ID,我必须计算在此期间输入窗口有多少天?

DECLARE @FchRef DATETIME

SET @FchRef ='2011-05-01'

--Fhc referencia de comienzo del programa a partir de cual calcular aportes
DECLARE @PeriRef SMALLINT

SET @PeriRef =24

--Periodo a partir de la Fch ref para contar aportes
DECLARE @FchCotDesde DATETIME

SET @FchCotDesde=Dateadd(MONTH, -24, @FchRef)

--Fch a partir de la …
Run Code Online (Sandbox Code Playgroud)

sql date sql-server-2008

2
推荐指数
1
解决办法
2636
查看次数

标签 统计

date ×1

sql ×1

sql-server-2008 ×1