Ver Mensaje Individual
  #9 (permalink)  
Antiguo 01/09/2010, 16:26
Avatar de iislas
iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 17 años, 4 meses
Puntos: 180
Respuesta: Como actualizo datos de una tabla a otra (detalle, encabezado)

Coloca el UPDATE SET adicional, en caso de haber un 4o numero

Código SQL:
Ver original
  1. -- Creo mis tablas de prueba
  2. CREATE TABLE #cliente (id INT IDENTITY (1,1) PRIMARY KEY, Nombre VARCHAR(50), telefono1 VARCHAR(10), telefono2 VARCHAR(10),telefono3 VARCHAR(10))
  3. CREATE TABLE #telefonos (id INT, idtel INT, telefono VARCHAR(10))
  4.  
  5. -- Inserto mis registros de prueba
  6. INSERT INTO #cliente VALUES ('Israel Hinojosa', '','','')
  7. INSERT INTO #telefonos VALUES( 1, 1, '1234567890')
  8. INSERT INTO #telefonos VALUES( 1, 2, '1234509876')
  9. INSERT INTO #telefonos VALUES( 1, 3, '6789012345')
  10. -- Reviso mis datos
  11. SELECT * FROM #cliente
  12. SELECT * FROM #telefonos
  13. -- Creo mi CTE
  14. WITH tels (id, idtel, telefono) AS
  15. (
  16. SELECT
  17. id ,
  18. idtel ,
  19. telefono
  20. FROM
  21. #telefonos
  22. )
  23. -- Actualizo en base al CTE  
  24. UPDATE #cliente SET
  25. telefono1 = (SELECT telefono FROM tels WHERE id = #cliente.id AND idtel = 1),
  26. telefono2 = (SELECT telefono FROM tels WHERE id = #cliente.id AND idtel = 2),
  27. telefono3 = (SELECT telefono FROM tels WHERE id = #cliente.id AND idtel = 3)
  28. -- Compruebo la actualizacion
  29. SELECT * FROM #cliente
__________________
MCTS Isaias Islas