Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » PostgreSQL »

Se puede hacer esto??

Estas en el tema de Se puede hacer esto?? en el foro de PostgreSQL en Foros del Web. Hola de nuevo... ojalá me puedan ayudar... Tengo esta tabla "temporal_detalle": @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código sql: Ver original id_detalle PK nov_id FK aforo_id ref_arte Es una ...
  #1 (permalink)  
Antiguo 04/12/2008, 08:55
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 14 años, 2 meses
Puntos: 70
Se puede hacer esto??

Hola de nuevo... ojalá me puedan ayudar...

Tengo esta tabla "temporal_detalle":
Código sql:
Ver original
  1. id_detalle PK
  2. nov_id FK
  3. aforo_id
  4. ref_arte

Es una tabla que contiene registros temporales, están ahí, hasta que confirmen que se guardarán los datos. Si el usuario guarda, se pasan a otra tabla igual, llamada "detalle":
Código sql:
Ver original
  1. id_detalle PK
  2. nov_id FK
  3. aforo_id
  4. ref_arte

Si se fijan son iguales, pero tienen diferente funcionalidad, una guarda registros temporales, la otra, guarda los registros vigentes y concretos y usados por el sistema.

Ahora lo que pasa es que el campo "nov_id" en "temporal_detalle" es un campo diferente al que tengo que insertar en "detalle". Es decir, si el campo nov_id en "temporal_detalle" vale 3 en "detalle" lo tengo que guardar como 100 (no me sirve guardarlo como 3).

Entonces mi pregunta es... como hago para usar:
Código sql:
Ver original
  1. INSERT INTO detalle SELECT * FROM temporal_detalle WHERE nov_id=3;

Pero que en la inserción de los nuevos registros no quede 3 sino 100 en la tabla "detalle"?

Se podrá?

Gracias de antemano
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #2 (permalink)  
Antiguo 04/12/2008, 12:46
 
Fecha de Ingreso: febrero-2007
Mensajes: 1.292
Antigüedad: 13 años, 8 meses
Puntos: 13
Respuesta: Se puede hacer esto??

Cita:
INSERT INTO detalle SELECT * FROM temporal_detalle WHERE nov_id=3;
Si quieres hacerlo para cada nov_id
Código:
insert into detalle
select  id_detalle, 100, aforo_id, ref_arte
from temporal_detalle WHERE nov_id=3;
  #3 (permalink)  
Antiguo 04/12/2008, 12:47
 
Fecha de Ingreso: febrero-2007
Mensajes: 1.292
Antigüedad: 13 años, 8 meses
Puntos: 13
Respuesta: Se puede hacer esto??

Si quires hacerlo para todos los nov_id
Código:
insert into detalle
select  id_detalle, 
             case nov_id
               when 3 then 100
               when x then y
              .....
               [else]
              end as nov_id_arreglado
, aforo_id, ref_arte
from temporal_detalle;
salu2
  #4 (permalink)  
Antiguo 05/12/2008, 13:05
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 14 años, 2 meses
Puntos: 70
Respuesta: Se puede hacer esto??

Del putas seyko

No tenía ni las mas remota idea que eso se podía hacer

Gracias man!! Me salvaste de una

Saludos
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:31.