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:
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"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
de tal forma:
Código:
y Listo solucione mi primer problema :DDeclare @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 '
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:
explicacion: 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
[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:
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". exec [dbo].[SBO_VAR_REP_VEN_ReporteCuotas_VentasAcumuladas] '2008/05/20'
Gracias de antemano por su apoyo. Saludos.