Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Overflow en Fechas

Estas en el tema de Overflow en Fechas en el foro de SQL Server en Foros del Web. Bnos dias... espero me puedan ayudar... me pasa que me estoy confundiendo en mandar los parametros... En realidad tengo 2 problemas con la misma consulta... ...
  #1 (permalink)  
Antiguo 05/06/2008, 10:39
Avatar de -rommel_  
Fecha de Ingreso: junio-2008
Ubicación: Lima
Mensajes: 360
Antigüedad: 16 años
Puntos: 1
De acuerdo Overflow en Fechas

Bnos dias... espero me puedan ayudar... me pasa que me estoy confundiendo en mandar los parametros...
En realidad tengo 2 problemas con la misma consulta... pero el primer problema lo solucione... y ahora esta solucion es la ke me da este error de OverFlow de Fecha... a ver si pueder ayudarme... vean tengo el siguiente Sp

Sp: [dbo].[SBO_VAR_REP_VEN_ReporteCuotas_VentasAcumuladas] @FechaVta
... la cual me reportara las Cuotas que se les da a cada Vendedor para cada producto durante un respectivo periodo (mes) y las Vtas Acumuladas hasta una Fecha consultada (@FechaVta)

Código:
CREATE [dbo].[SBO_VAR_REP_VEN_ReporteCuotas_VentasAcumuladas] 
(
    @FechaVta as Datetime
)

Declare @ListaProd   --> Me Obtendra la Lista de los tamaños de los Prod Termi.
set @ListaProd = [dbo].[SBO_ListaTamanosProductosTerminados]()

        Select     [Cod Emp]
	,     [Nombres]
	,     [Tip Reg]     = 'CUOTA'
	,    @ListaProd
          from
	( Select
	           [Cod Emp]	=  U_VAR_CoEmp      -- Codigo del Empleado
	      ,    [Nombres]	=  U_VAR_NameEm   -- Nombre del Empleado
	      ,    [TamProd]	=  U_VAR_TamPro    -- Tamano de Producto
	      ,    [Cuota]         =  U_VAR_ValCuo	 -- VALOR de CUOTA
	   from [@VAR_EMPCUO] uo 
	   inner join [@VAR_CUOTA] ta on uo.Code = ta.Code
	   where ta.U_VAR_CuoPe = Month(@FechaVta)
	 ) as k Pivot(sum([Cuota]) FOR [TamProd] in (@ListaProd))PB
El primer problema me sucede aqui... al aplicar el PIVOT a la consulta... ke existe un error de sintaxis cerca de "(@ListaProd))PB"... ahora porque me daba ese error no se, si todo esta en su sitio o me falta algo mas... bueno eso lo solucione metiendo toda la consulta a una variable nVarchar(MAX) y ejecutarla dinamicamente con "EXEC sp_executesql"
de tal forma:

Código:
Declare @SqlCuota nVarchar(MAX)
set @SqlCuota =
'
         Select     [Cod Emp]
	,     [Nombres]
	,     [Tip Reg]     = ' + char(39) + 'CUOTA' + char(39) + '
	,    ' + @ListaProd + '
          from
	( Select
	           [Cod Emp]	=  U_VAR_CoEmp 
	      ,    [Nombres]	=  U_VAR_NameEm 
	      ,    [TamProd]	=  U_VAR_TamPro 
	      ,    [Cuota]         =  U_VAR_ValCuo	 
	   from [@VAR_EMPCUO] uo 
	   inner join [@VAR_CUOTA] ta on uo.Code = ta.Code
	   where ta.U_VAR_CuoPe = Month(' + @FechaVta+ ')
	 ) as k Pivot(sum([Cuota]) FOR [TamProd] in (' + @ListaProd+ '))PB
'
y Listo solucione mi primer problema :D

Ahora si, esa consulta quiero unirla... "union all"... con mi otra consulta que obtendra la Venta Acumulada hasta la fecha Indicada en el Proc Actual (@FechaVta)

Código:
Declare @SqlVtaAcu
Set @SqlVtaAcu =
        'Select 
	       [Cod Emp]
	,      [Nombres]
	,      [Tip Reg]     = ' + char(39) + 'Vta Acumulada' + char(39)+ '
	,      '+ @ListaProd + '
         from	
	(  Select		
	            [Cod Emp]  =   U_VAR_CoEmp 
	         ,  [Nombres]  =   U_VAR_NameEm 
	         ,  [TamProd]  =   U_VAR_TamPro 
	         ,  [Vta Acu]    =   [dbo].[SBO_VAR_CalcularVentaAcumulada]('
                                                     + char(39) + @Fechita + char(39) +
                                                      ', uo.U_VAR_CoEmp, ta.U_VAR_TamPro)
	    from [@VAR_EMPCUO] uo 
	    inner join [@VAR_CUOTA] ta on uo.Code = ta.Code
	    where ta.U_VAR_CuoPe = ' + Month(@FechaVta) + '
	 )  as k Pivot(sum([Vta Acu]) FOR [TamProd] in (' + @ListaProd + '))PB
          order by [Cod Emp], [Tip Reg]
       '
      set @SqlCuota = @SqlCuota + ' union all ' + @SqlVtaAcu
      EXEC sp_executesql @SqlCuota
explicacion:
[dbo].[SBO_VAR_CalcularVentaAcumulada] es una funcion que me devuelve un "double" y
le mando 3 parametros (@FechaVta , CodEmp, TamanoProd)... ahora es aqui donde sale mi error de OverFlow, cuando le mando al procedimiento original una fecha cualquiera.
Código:
 exec [dbo].[SBO_VAR_REP_VEN_ReporteCuotas_VentasAcumuladas] '2008/05/20'
me sale error de OverFlow... ahora si podrian decirme porke me sale el error este, a menos kise ser lo mas explicativo posible... me ayudarian mucho, conste que todos los parametros "fecha" son de tipo "datetime".

Gracias de antemano por su apoyo. Saludos.
  #2 (permalink)  
Antiguo 05/06/2008, 17:11
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 10 meses
Puntos: 180
Respuesta: Overflow en Fechas

Envie el formato YYYYMMDD
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:45.