Ver Mensaje Individual
  #1 (permalink)  
Antiguo 25/07/2011, 10:43
Avatar de Inicia
Inicia
 
Fecha de Ingreso: octubre-2010
Ubicación: Actualmente en GDL
Mensajes: 135
Antigüedad: 14 años, 1 mes
Puntos: 1
Problemas con un SP

Tengo un problema con el sig SP

Código SQL:
Ver original
  1. --      Exec p5rVtaArticuloDetallado1 '2011/04'
  2. ALTER PROCEDURE p5rVtaArticuloDetallado1
  3.  
  4. (@IdPeriodo utclave)
  5.  
  6. AS
  7.  
  8. SET NoCount OFF
  9. SET dateformat dmy
  10.  
  11. DECLARE
  12. @FechaInicial utFecha,
  13. @FechaFinal   utFecha,
  14. @Anio   utentero,
  15. @Periodo utentero,
  16. @ExstMesPrevio utentero,
  17. @InvMesPrevio utentero
  18.  
  19. --select top(1)* from periodo
  20.  
  21. SELECT @IdPeriodo=@Idperiodo
  22. SELECT @FechaInicial=FechaInicial FROM periodo WHERE ID=@IdPeriodo
  23. SELECT @FechaFinal=FechaFinal FROM periodo WHERE ID=@IdPeriodo
  24. SELECT @Anio=Anio FROM periodo WHERE ID=@IdPeriodo
  25. SELECT @Periodo=Periodo FROM periodo WHERE ID=@IdPeriodo
  26. SELECT @ExstMesPrevio=(CASE WHEN @Periodo IN ('2','3','4','5','6','7','8','9','10','11','12') THEN SUM(@Periodo-1)
  27.             WHEN periodo = '1' THEN SUM(@Periodo-11) END)
  28.             FROM Periodo P WHERE FechaInicial=@FechaInicial AND FechaFinal=@FechaFinal GROUP BY periodo
  29.  
  30. SELECT @InvMesPrevio=(CONVERT (INT, (Id))) FROM Periodo WHERE Anio=@Anio AND Periodo=@ExstMesPrevio
  31.  
  32.  
  33. --insert into ArticuloEstado
  34.  
  35. SELECT
  36.     FE.Cliente,FD.Folio,FE.CondicionPago, FE.Fecha,FD.Articulo,FD.DescripcionArticulo,
  37.     FD.Cantidad AS PiezaVendidas,    FD.Precio,     Isnull((fd.Pedimento),0) AS FactPedimento,
  38.     SUM(ED.Cantidad) AS EntXComp ,
  39.     Isnull((ED.Pedimento),0) AS EntradaCPedimento,
  40. MAX(Isnull((CSD.fechaultimoabono),0)) AS FechaAbono ,
  41. (CASE   WHEN CSD.Importe=CSD.ImporteAplicado THEN 'Saldado'
  42.         WHEN CSD.Saldo >CSD.ImporteAplicado THEN 'NoExistePago'
  43.         WHEN CSD.Saldo <CSD.ImporteAplicado THEN 'ExisteAbono' END) AS Estado,
  44. Isnull(SUM(ASS.Existencia),0) AS ExistenciA
  45.  
  46. FROM    FacturaEncabezado FE ,FacturaDetalle FD, Cliente, Moneda, Articulo,
  47.         EntradaEncabezado EE, EntradaDetalle ED, ClienteSaldoDocumento CSD, ArticuloSaldos ASS
  48. WHERE   FE.Empresa = FD.Empresa AND
  49.         FE.Folio = FD.Folio AND
  50.         FE.Cliente = Cliente.Clave AND
  51.         FE.Moneda = Moneda.Clave AND
  52.         FD.Articulo = Articulo.Clave AND
  53.         FE.Empresa = 'emp1' AND
  54.         FE.Fecha BETWEEN @FechaInicial AND @FechaFinal
  55. AND EE.Folio=ED.Folio AND FD.Pedimento=ED.Pedimento
  56. AND ED.Empresa=FE.Empresa
  57. AND FD.Articulo=Ed.Articulo
  58. AND FE.Folio='EG00046393'
  59. AND EE.Documento='ECPAM' AND EE.Operacion='Entrada'  
  60. AND ED.Fecha1 BETWEEN @FechaInicial AND @FechaFinal
  61. AND ED.Almacen IN ('01','03','07')
  62. AND FE.Cliente=CSD.Cliente
  63. AND FE.Folio=CSD.Folio
  64. AND FD.Folio=CSD.Folio
  65. --and ASS.ARticulo='6030031'
  66. AND ASS.Articulo=FD.Articulo
  67. AND ASS.Articulo=Articulo.Clave
  68. AND ASS.Articulo=Ed.Articulo
  69. AND CSD.operacion='Factura'
  70. AND ASS.Empresa= 'EMP1'  
  71. AND ASS.idperiodo =@InvMesPrevio AND ASS.almacen IN ('01','03','07')
  72.  
  73. GROUP BY FE.Cliente,FD.Folio,FE.CondicionPago,FE.Fecha,FD.Articulo,FD.DescripcionArticulo,FD.Cantidad,FD.Precio,fd.Pedimento,ED.Pedimento
  74.    ,CSD.fechaultimoabono,CSD.fecha,CSD.ImporteAplicado ,CSD.Importe,CSD.Saldo

Cuando ejecuto la consulta me sale el error

Msg 245, Level 16, State 1, Procedure p5rVtaArticuloDetallado1, Line 30
Conversion failed when converting the varchar value '2011/03 ' to data type int.

que esta haciendo referencia al @InvtMesPrevio... por eso trate de convertirlo a entero pero aún asi me marca error..

Otro problema q tengo es q en la tabla ClienteSaldoDocumento puedo tener varios registros de un folio.. por lo cual si un folio tiene registro 4 veces en esta tabla me los devuelve a la consulta... y solo quiero q me traiga el máximo de la fecha de abono... espero me puedan ayudar ya trate con el max pero me sigue trayendo los 4 registros..