SQL - Procedimientos almacenados con campo fecha en Pivot

   
Vista:

Procedimientos almacenados con campo fecha en Pivot

Publicado por Jorge (4 intervenciones) el 22/02/2018 22:41:50
Hola Comunidad, tengo el siguiente procedimiento almacenado para crear una consulta con referencias cruzadas, pero me esa apareciendo el siguiente mensaje "Error al convertir el tipo de datos nvarchar a date." y "Se ha proporcionado el valor incorrecto "@fecha1" en el operador PIVOT."

el procedimiento es:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
create procedure sp_ImprimirProgramacion
	@Fecha1 as date,
	@Fecha2 as date,
	@Fecha3 as date,
	@Fecha4 as date,
	@Fecha5 as date,
	@Fecha6 as date
as
 
begin
With Programacion(Receta, Cod, Fecha_1, Cantidad1) As
(SELECT Nombre, Codigo, Fecha, sum(Cantidad) as cant
From tblProgramacion
INNER Join tblRecetas ON tblProgramacion.IdReceta = tblRecetas.IdReceta
LEFT JOIN tblUsuarios ON tblProgramacion.Responsable = tblUsuarios.IdUser
Where Fecha >= @Fecha1 AND Fecha <= @Fecha6
GROUP BY Nombre, Codigo, Fecha)
Select * From Programacion
PIVOT(Sum(Cantidad1)
For Fecha_1 in ([@fecha1], [@fecha2],	[@fecha3], [@fecha4], [@fecha5], [@fecha6])) as pvt
end
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Isaias

Procedimientos almacenados con campo fecha en Pivot

Publicado por Isaias (1176 intervenciones) el 23/02/2018 17:19:11
Estas tratando de convertir una cadena o STRING a un tipo de dato FECHA y no cumple con el requisito

YYYYMMDD HH:MM:SS
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Procedimientos almacenados con campo fecha en Pivot

Publicado por Jorge (4 intervenciones) el 23/02/2018 23:35:34
Hola Isaias, gracias por tu respuesta.
ya vi que en el operador Pivot debo colocar el valor como varchar, pero he probado de diferentes maneras pero siempre me parece el mismo mensaje de error

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
create procedure sp_ImprimirProgramacion
	@Fecha1 as date,
	@Fecha6 as date,
	@Fecha1_1 as varchar(12),
	@Fecha2_1 as varchar(12),
	@Fecha3_1 as varchar(12),
	@Fecha4_1 as varchar(12),
	@Fecha5_1 as varchar(12),
	@Fecha6_1 as varchar(12)
as
 
begin
With Programacion(Receta, Cod, Fecha_1, Cantidad1) As
(SELECT Nombre, Codigo, Fecha, sum(Cantidad) as cant
From tblProgramacion
INNER Join tblRecetas ON tblProgramacion.IdReceta = tblRecetas.IdReceta
LEFT JOIN tblUsuarios ON tblProgramacion.Responsable = tblUsuarios.IdUser
Where Fecha >= @Fecha1 AND Fecha <= @Fecha6
GROUP BY Nombre, Codigo, Fecha)
Select * From Programacion
PIVOT(Sum(Cantidad1)
For Fecha_1 in (
	[convert(varchar,@fecha1_1, 105],
	[convert(varchar,@fecha2_1, 105],
	[convert(varchar,@fecha3_1, 105],
	[convert(varchar,@fecha4_1, 105],
	[convert(varchar,@fecha5_1, 105],
	[convert(varchar,@fecha6_1, 105])) as pvt
end

No se como puedo colocar el parametro que recibo para que me lo acepte como varchar
Saludos y gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Revisar política de publicidad