我有一个棘手的问题。我有一个社会保障缴款表如下(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)