Ver Mensaje Individual
  #4 (permalink)  
Antiguo 05/01/2010, 14:05
gaviota81
 
Fecha de Ingreso: diciembre-2009
Mensajes: 14
Antigüedad: 14 años, 4 meses
Puntos: 0
De acuerdo Respuesta: cambiar Cursor lento por SP

Hola! les agradezco a ambos infinitamente! probé las dos soluciones y ambas me resultaron de mucha utilidad. Anexo la solución:

Código SQL:
Ver original
  1. SET NOCOUNT ON
  2.  
  3. IF OBJECT_ID('tbl_Consecutive') IS NOT NULL  DROP TABLE tbl_Consecutive
  4.  
  5. CREATE TABLE tbl_Consecutive (iId INT NOT NULL)
  6.  
  7. DECLARE @i BIGINT
  8. DECLARE @cant BIGINT
  9.  
  10. SET @i = 0
  11. SELECT @cant=COUNT(*)
  12. FROM MOMBEF_Trabajo a, MOMBDF_1 b, MOARCF_1 c
  13. WHERE a.Boleta=b.boleta
  14. AND a.sucursal = b.sucursal
  15. AND  b.cveArticulo = CAST(c.CveArticulo AS INT)
  16.  
  17. -- Agrega tantos segun el maximo que esperas iterar
  18. WHILE @i <= @cant
  19. BEGIN
  20.     INSERT INTO tbl_Consecutive (iId) VALUES(@i)  
  21.     SET @i = @i + 1;
  22. END
  23.  
  24. ALTER TABLE tbl_Consecutive ADD PRIMARY KEY (iId)
  25.  
  26. PRINT 'TABLE FINISHED'
  27.  
  28. SELECT * FROM tbl_Consecutive
  29.  
  30. DROP TABLE Carga_Boleta_Match
  31. GO
  32. CREATE TABLE Carga_Boleta_Match
  33. (
  34. CantidadPrendas NUMERIC(18,0),
  35. boleta BIGINT,
  36. CveArticulo NUMERIC(18,0),
  37. DescArticulo VARCHAR(30),
  38. Peso DECIMAL(28,2),
  39. Peso2 DECIMAL(28,2),
  40. Comentario VARCHAR(30)
  41. )
  42.  
  43. INSERT INTO Carga_Boleta_Match(
  44.              CantidadPrendas
  45.             ,boleta
  46.             ,CveArticulo
  47.             ,DescArticulo
  48.             ,Peso
  49.             ,Peso2
  50.             ,Comentario
  51. )
  52. SELECT       b.CantidadPrendas
  53.             ,a.boleta
  54.             ,b.CveArticulo
  55.             ,c.DescArticulo
  56.             ,b.Peso
  57.             ,(b.Peso / CantidadPrendas) AS peso2
  58.             ,'' AS comentario
  59. FROM         MOMBEF_Trabajo a
  60. INNER JOIN   MOMBDF_1  b
  61. ON           a.Boleta = b.boleta     AND
  62.              a.sucursal = b.sucursal  
  63. INNER JOIN   MOARCF_1 c
  64. ON            b.cveArticulo = CAST(c.CveArticulo AS INT)
  65. INNER JOIN   tbl_Consecutive d
  66. ON           d.iId < b.CantidadPrendas
  67. GO
  68. UPDATE Carga_Boleta_Match
  69.    SET comentario = 'Verificar peso'
  70.  WHERE CantidadPrendas>1