Ver Mensaje Individual
  #2 (permalink)  
Antiguo 12/12/2013, 10:46
Avatar de Libras
Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: Comparar una tabla registro por registro con otra

eso podria ser algo asi

Código SQL:
Ver original
  1. CREATE TABLE #temp
  2. (
  3. nombre VARCHAR(20),
  4. cantidad INT
  5. )
  6.  
  7. INSERT INTO #temp VALUES ('yo',50)
  8. INSERT INTO #temp VALUES ('yo',50)
  9. INSERT INTO #temp VALUES ('tu',100)
  10. INSERT INTO #temp VALUES ('el',25)
  11. INSERT INTO #temp VALUES ('el',25)
  12. INSERT INTO #temp VALUES ('el',25)
  13. INSERT INTO #temp VALUES ('el',25)
  14. INSERT INTO #temp VALUES ('el',25)
  15.  
  16.  
  17. CREATE TABLE #resultado
  18. (
  19. nombre VARCHAR(20),
  20. cantidad INT
  21. )
  22.  
  23. DECLARE @x INT
  24. DECLARE @suma INT
  25. DECLARE @cantidad INT
  26. DECLARE @parametro VARCHAR(20)
  27. SET @x=1
  28. SET @suma=0
  29. SET @parametro='yo'
  30.  
  31. SELECT ROW_NUMBER() OVER(partition BY nombre ORDER BY nombre) AS rn, nombre,cantidad INTO #temp2 FROM #temp WHERE nombre=@parametro
  32.  
  33. while(@x<=(SELECT COUNT(*) FROM #temp2))
  34. BEGIN
  35. SELECT @cantidad=cantidad FROM #temp2 WHERE rn=@x
  36. SET @suma=@suma+@cantidad
  37. IF @suma<=100
  38. INSERT INTO #resultado SELECT nombre,cantidad FROM #temp2 WHERE rn=@x
  39. SET @x=@x+1
  40. END
  41.  
  42. SELECT * FROM #resultado
  43. DELETE FROM #resultado
  44. DROP TABLE #temp2

saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me