Ver Mensaje Individual
  #2 (permalink)  
Antiguo 15/11/2005, 16:44
Avatar de Linterns
Linterns
Colaborador
 
Fecha de Ingreso: diciembre-2001
Mensajes: 2.799
Antigüedad: 23 años, 3 meses
Puntos: 11
en primer lugar eso de "agregar nuevo contrato" asumo que estas utilizando algun software... VB ? php? Fox? acces? no se... algo donde estas haciendo el formulario...

pues bien la cuestion para cualquiera que sea el software que estas ocupando lo que deberas hacer es un INSERT a partir de un SELECT.

ejemplo: Si creas un nuevo contrato generas un archivo Manualmente en CONTRACT lo que te dara un numero en CONTRACT.CONTRACT_ID, supongamos que te dio el correlativo 500 hacemos lo siguiente:

Código:
INSERT INTO Products_category 
(contract_id, 
category_code, 
category_descripcion,
category_notes,
category_type)
SELECT 
500, 
category_code, 
category_descripcion,
category_notes,
category_type
from Products_category
Where products_category = "AQUI_EL_CONTRATO_ANTERIOR");
Luego deberas llenar de la misma forma la tabla de productos

Código:
INSERT INTO Products
( category_id,
product_code,
product_descripcion,
abreviature,
notes,
price )
SELECT 
category_id,
product_code,
product_descripcion,
abreviature,
notes,
0
from products
Where products.category_id IN 
     (select products_category.category_id
      from products_category
      Where Where products_category = "AQUI_EL_CONTRATO_ANTERIOR")
Como podras darte cuenta en el segundo Insert lo que hace es insertar todas las tuplas con precio igual a cero (0) de aquellas que cumplen con la condicion del contrato anetrior que tenias.

NOTA: Creo que en algun Query tendras que modificar algo ya que lo estoy haciendo sin tener ninguna base de datos a la mano para probar... asi que si te arroja un error trata de verificar la sintaxis
__________________
Bien se puede recibir una puñalada sin adulación,
pero rara vez se recibe una adulación sin puñalada
** ***