Estou usando o SQL server 2008 R2 e não tenho as funções LAG e LEAD.
Tenho essa tabela inicial e preciso que StartDate seja igual a EndDate do registro anterior mais 1 dia. Consulte a Tabela de Resultados.
Atenciosamente, Elio Fernandes.
Estou tentando criar uma Stored Procedure, e passo o nome de uma tabela como parâmetro e recebo esta mensagem: Deve declarar a variável da tabela "@tblName".
O que devo mudar para funcionar?
CREATE PROCEDURE [usp_SaveToErrorLog]
@tblName as nvarchar(50),
@subject as nvarchar(30)
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(@tblName))
Begin
Insert Into @tblName
(ErrorNumber, ErrorMessage, ErrorProcedure, ErrorState, ErrorSeverity, ErrorLine)
Select
ERROR_NUMBER(), ERROR_MESSAGE(), ERROR_PROCEDURE(), ERROR_STATE(), ERROR_SEVERITY(), ERROR_LINE()
End
END
Tenho esta tabela e não tenho SQL suficiente para fazer uma consulta para obter o resultado mostrado na imagem abaixo.
CREATE TABLE myDates (
id integer NOT NULL,
startDate date NOT NULL,
endDate date NOT NULL
);
insert into myDates(id, startDate, endDate)
values
(1, '2017-12-26', '2017-12-29'),
(2, '2017-12-29', '2017-12-29'),
(3, '2017-12-14', '2017-12-29'),
(4, '2017-12-18', '2017-12-21'),
(5, '2017-12-26', '2017-12-29'),
(6, '2017-12-28', '2017-12-29'),
(7, '2017-12-26', '2017-12-29'),
(8, '2017-12-25', '2017-12-27')
Veja todos os dias entre 'startDate' e 'endDate' e conte o total de ocorrências por dia:
Acabei de adicionar esta imagem de um arquivo do Excel para ilustrar melhor o que estou tentando alcançar. Estou migrando do Excel para o SQL. Ignore finais de semana e 22/12 e 25/12.
Regrads, Elio Fernandes