Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/10/2010, 16:52
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
Pregunta Filtrar un SP

Tengo problemas con mi SP, cuando lo ejecuto por ejemplo, le pongo condiciones como: busca solo los artículos clase "A" y cuando ejecuto no me hace ningún filtro, tampoco funciona con ningún tipo de artículo, etc, espero que ustedes me puedan ayudar a resolver mi problema, aquí dejo mi código:

Código SQL:
Ver original
  1. ALTER PROCEDURE [dbo].[P5rADCArticuloCaract]
  2. (@Empresa   utClave
  3. ,@Clase     utClave
  4. ,@Grupo     utClave
  5. ,@Familia   utClave
  6. ,@Articulo  utClave)
  7. AS
  8.  
  9. DECLARE
  10. @Anio       utEntero,
  11. @Periodo    utEntero,
  12. @IdPeriodo  utClave
  13.  
  14. SET nocount ON
  15.  
  16. SELECT @IdPeriodo = Valor FROM P5Sistema WHERE Parametro = 'PeriodoActual' AND Empresa = @Empresa AND Modulo = 'ADI'
  17.  
  18. SELECT @Anio = Anio, @Periodo = Periodo FROM Periodo WHERE id = @IdPeriodo
  19.  
  20. IF (isnull(@Clase,'')<>''
  21.     OR isnull(@Grupo,'')<>''
  22.     OR isnull(@Familia,'')<>''
  23.     OR isnull(@Articulo,'')<>'')
  24. BEGIN
  25.     SELECT A.ArticuloFamilia, A.Clave AS Articulo, A.Texto1 AS NoParte, A.ArticuloTipo,
  26.         A.texto2 AS NotasCompras, A.Descripcion, A.ArticuloClase, AC.CostoPromedio,
  27.         isnull((SELECT Top 1 (1-(ED.pctDescuento/100))*ED.Precio
  28.                 FROM EntradaDetalle ED, EntradaEncabezado EE
  29.                 WHERE ED.Empresa = EE.Empresa
  30.                     AND ED.Folio = EE.Folio
  31.                     AND EE.Documento = 'ECPAM'
  32.                     AND EE.Estatus = 'A'
  33.                     AND ED.Articulo = A.Clave
  34.                 ORDER BY EE.FechaCaptura DESC),0) AS UltimoCosto,
  35.         isnull((SELECT SUM(Existencia) FROM ArticuloExistencia WHERE Empresa = @Empresa AND Articulo = A.Clave AND IdPeriodo = @IdPeriodo AND Almacen LIKE '0%'),0) AS Existencia,
  36.         isnull((SELECT SUM(OrdenadaVenta) FROM ArticuloSaldoAlmacen WHERE Articulo = A.Clave),0)AS OrdenadaVenta, A.MaximoAlmacenable AS Maximo, A.MinimoSeguridad AS Minimo,
  37.         A.PuntoReorden, A.ArticuloGrupo, A.Numero1 AS Precio1, A.Numero2 AS Precio2, A.Numero3 AS Precio3,
  38.         isnull((SELECT Top 1 FE.Fecha FROM FacturaEncabezado FE, FacturaDetalle FD WHERE FE.Empresa = FD.Empresa AND FE.Folio = FD.Folio AND FE.Empresa = @Empresa AND FD.Articulo = A.Clave AND FE.Estatus='A' ORDER BY FechaCaptura DESC),'19990101') AS FechaUltMov
  39.     FROM ArticuloCosto AC,
  40.         Articulo A
  41.     WHERE A.Clave = AC.Articulo
  42.         AND AC.Anio = @Anio
  43.         AND AC.Periodo = @Periodo
  44.     ORDER BY A.Clave
  45. END
  46. ELSE
  47. BEGIN
  48.     SELECT A.ArticuloFamilia, A.Clave AS Articulo, A.Texto1 AS NoParte, A.ArticuloTipo,
  49.         A.texto2 AS NotasCompras, A.Descripcion, A.ArticuloClase, AC.CostoPromedio,
  50.         isnull((SELECT Top 1 (1-(ED.pctDescuento/100))*ED.Precio
  51.                 FROM EntradaDetalle ED, EntradaEncabezado EE
  52.                 WHERE ED.Empresa = EE.Empresa
  53.                     AND ED.Folio = EE.Folio
  54.                     AND EE.Documento = 'ECPAM'
  55.                     AND EE.Estatus = 'A'
  56.                     AND ED.Articulo = A.Clave
  57.                 ORDER BY EE.FechaCaptura DESC),0) AS UltimoCosto,
  58.         isnull((SELECT SUM(Existencia) FROM ArticuloExistencia WHERE Empresa = @Empresa AND Articulo = A.Clave AND IdPeriodo = @IdPeriodo AND Almacen LIKE '0%'),0) AS Existencia,
  59.         isnull((SELECT SUM(OrdenadaVenta) FROM ArticuloSaldoAlmacen WHERE Articulo = A.Clave),0)AS OrdenadaVenta, A.MaximoAlmacenable AS Maximo, A.MinimoSeguridad AS Minimo,
  60.         A.PuntoReorden, A.ArticuloGrupo, A.Numero1 AS Precio1, A.Numero2 AS Precio2, A.Numero3 AS Precio3,
  61.         isnull((SELECT Top 1 FE.Fecha FROM FacturaEncabezado FE, FacturaDetalle FD WHERE FE.Empresa = FD.Empresa AND FE.Folio = FD.Folio AND FE.Empresa = @Empresa AND FD.Articulo = A.Clave AND FE.Estatus='A' ORDER BY FechaCaptura DESC),'19990101') AS FechaUltMov
  62.  
  63.     INTO #ArticuloCaracteristica
  64.     FROM ArticuloCosto AC,
  65.         Articulo A
  66.     WHERE A.Clave = AC.Articulo
  67.         AND AC.Anio = @Anio
  68.         AND AC.Periodo = @Periodo
  69.     ORDER BY A.Clave
  70.  
  71.     IF isnull(@Clase,'') <> ''
  72.     BEGIN
  73.         DELETE #ArticuloCaracteristica WHERE ArticuloClase <> @Clase
  74.     END
  75.  
  76.     IF isnull(@Grupo,'')<> ''
  77.     BEGIN
  78.         DELETE #ArticuloCaracteristica WHERE ArticuloGrupo <> @Grupo
  79.     END
  80.  
  81.     IF isnull(@Familia,'')<> ''
  82.     BEGIN
  83.         DELETE #ArticuloCaracteristica WHERE ArticuloFamilia <> @Familia
  84.     END
  85.  
  86.     IF isnull(@Articulo,'')<> ''
  87.     BEGIN
  88.         DELETE #ArticuloCaracteristica WHERE Articulo NOT LIKE ltrim(rtrim(@Articulo))+'%'
  89.     END
  90.  
  91.     SELECT * FROM #ArticuloCaracteristica
  92. END