Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/01/2011, 07:02
mikil
 
Fecha de Ingreso: agosto-2002
Ubicación: Lleida
Mensajes: 506
Antigüedad: 21 años, 8 meses
Puntos: 0
insertar el resultado de un select y algo mas

una vez solventado el tema de las consulta quiero que su resultado sea insertado en una tabla, pero algun campo mas del registro debo fijarlo.
la instruccion siguiente funciona perfecto

insert into diari ( numlocal, tipuslocal, importbase, periva, perret, importiva, importret, importtotal )
select L.LocClau1, L.tipus,
Q1.Quoimport ,
Q2.QuoImport ,
Q3.QuoImport ,
round((q1.quoimport * q2.quoimport /100),2) ,
round((q1.quoimport * q3.quoimport /100),2) ,
(q1.quoimport + round((q1.quoimport * q2.quoimport /100),2) - round((q1.quoimport * q3.quoimport /100),2)) as total
from locals L
inner join quotes Q1 on L.LocCodiQuota = Q1.quoclau1
inner join quotes Q2 on L.LocCodiIva = Q2.quoclau1
inner join quotes Q3 on L.LocCodiRet = Q3.quoclau1
where L.tipus = "C"

pero como lo hago si quiero insertar fijos los valores de los campos PERIODO y FECHAEMISION ?
he probado
insert into diari ( periodo, fechaemision, numlocal, tipuslocal, importbase, periva, perret, importiva, importret, importtotal )
values ( 2, '2011-01-01', (
select L.LocClau1, L.tipus,
Q1.Quoimport ,
Q2.QuoImport ,
Q3.QuoImport ,
round((q1.quoimport * q2.quoimport /100),2) ,
round((q1.quoimport * q3.quoimport /100),2) ,
(q1.quoimport + round((q1.quoimport * q2.quoimport /100),2) - round((q1.quoimport * q3.quoimport /100),2)) as total
from locals L
inner join quotes Q1 on L.LocCodiQuota = Q1.quoclau1
inner join quotes Q2 on L.LocCodiIva = Q2.quoclau1
inner join quotes Q3 on L.LocCodiRet = Q3.quoclau1
where L.tipus = "C" ) )

pero me da error
/* SQL Error: Column count doesn't match value count at row 1 */