Ver Mensaje Individual
  #3  
Antiguo 22-07-2022
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.734
Reputación: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
1. Una manera es hacerlo mediante triggers, pero tiene la contra de que ralintiza la importación, porque para cada registro debe realizar el cálculo.

2. La opción de hacerlo al final de la importación, como mencionas me gusta más, pero agregaría algo para evitar calcular los ya calculados:

Código SQL [-]
update tablaCSV 
set tablaCSV.campoextra = (select producto.cod_prov from producto where producto.id_prod = tablaCSV.id_prod)
where tablaCSV.campoextra = '' /* Solo calculo para los registros que no tienen el campo informado*/

3. Una tercera opción es no agregarlo a la tabla, sinó hacer un join o un subselect con el dato.
Esto es recomendable si quieres tener al día el dato asociado. Por ejemplo si se trata del stock, que va cambiando continuamente.

Código SQL [-]
/* Mediante SUBSELECT*/
select c.*, (select p.cod_prov from producto p where p.id_prod = c.id_prod) as campoextra from tablaCSV c
where 
...

/* Mediante JOIN (Solo aparecen registros de la tablaCSV si existe el producto) */
select c.*, p.cod_prov as campoextra 
from tablaCSV c
JOIN producto p on p.id_prod = c.id_prod
where 
...

/* Mediante LEFT JOIN (aparece cada registro de tablaCSV aunque no existe un producto con ese codigo) */
select c.*, p.cod_prov as campoextra 
from tablaCSV c
LEFT JOIN producto p on p.id_prod = c.id_prod
where 
...
Responder Con Cita