Ver la Versión Completa : ayuda a pasar campos de dos tablas a una
ddd_ddd
19-09-2005, 03:07:07
tengo dos tablas, graficamente seria:
pagos_normales:
clavediaspago11100121002210022100
pagos_extras
clavediaspago12100121002110021100
lo que quiero es pasar a otra tabla los totales de lo que se les pago solo el dia 2 pero separar pago extra del pago normal. graficamente quedaria:
clavetotal_normaltotal_extratotal11002003002200200
uso delphi y mysql
MasterXP
19-09-2005, 05:00:52
pos yo no entiendo muy bien lo que quisiste dibujar (no se entiende).
pero si lo que quieres es llenar una tabla con la suma de otros es bien sencillo:
INSERT INTO TablaFinal (campo1, campo2, ..., campoN)
SELECT SUM(TablaOrigen.campo) FROM TablaOrigen
ddd_ddd
19-09-2005, 05:25:02
lo que pasa es que si se usar eso. el problema es que en la nueva tabla debe de ir la clave, el total que se paga en horas normales, el total que se paga de extras y la suma de normales y extras pero solo del dia 2.
ahora si graficamente seria:
pagos_normales:
clave....dias...pago
1.........2.......100
1.........3.......100
2.........2.......100
2.........2.......100
3.........2.......100
pagos_extras:
clave....dias...pago
1.........2.......100
1.........2.......100
2.........1.......100
2.........2.......100
3.........1.......100
tabla_resultante:
pagos_normales:
clave....pago_normal....pago_extra...total
1.............100...............200..........300
2.............200...............100..........300
3.............100................0............100
vtdeleon
19-09-2005, 07:16:57
Saludos
Esto no lo he probado, lo hice en un ratito
/*Siendo pn->Pagos_Normales, pe->Pagos_Extra*/
insert into Resultadopagosnormales(clave,pago_normales,pago_extra,total)
(select pn.clave, sum(pn.pago),sum(pe.pago),(sum(pn.pago)+sum(pe.pago)) total
from pn,pe
where pn.clave=pe.clave and pn.dias=2 and pe.dias=2
group by pn.clave,pe.clave)Puede ser que se me escape algo:p
Suerte
ddd_ddd
19-09-2005, 18:16:21
esta bien tu codigo, ya lo habia hecho, pero EXISTE UN PROBLEMA MAYOR, supongamos que la clave tres esta en la tabla de pagos_normales pero no lo esta en pagos_extras
con la sentencia where que pones la tabla resultante seria
tabla_resultante:
clave....pago_normal....pago_extra...total
1.............100...............200..........300
2.............200...............100..........300
pero lo correcto seria:
tabla_resultante:
clave....pago_normal....pago_extra...total
1.............100...............200..........300
2.............200...............100..........300
3.............100................0............100
el problema supongo que esta en:
where pn.clave=pe.clave and pn.dias=2 and pe.dias=2
group by pn.clave,pe.clave
estaria muy agradecido de que me pudieras ayudar
vtdeleon
19-09-2005, 18:27:16
Saludos
Pues usa Left o Right Join dependiendo del caso
/*Siendo pn->Pagos_Normales, pe->Pagos_Extra*/
insert into Resultadopagosnormales(clave,pago_normales,pago_extra,total)
(select pn.clave, sum(pn.pago),sum(pe.pago),(sum(pn.pago)+sum(pe.pago)) total
from pn
left join pe on pn.clave=pe.clave /*o Right Join*/
where pn.dias=2 and pe.dias=2
group by pn.clave,pe.clave)
ddd_ddd
21-09-2005, 17:47:58
utilizo el full join y seria asi:
insert into Resultadopagosnormales(clave,pago_normales,pago_extra,total)
(select pn.clave, sum(pn.pago),sum(pe.pago),(sum(pn.pago)+sum(pe.pago)) total
from pn
full join pe on pn.clave=pe.clave
where pn.dias=2 or pe.dias=2
group by pn.clave,pe.clave)
si funciona pero no inserta la suma de pn.pago+pe.pago en el total
vtdeleon
22-09-2005, 06:15:42
Saludos
Da algun error de sintaxis o algo :confuced:
Prueba esta consulta:select pn.clave, sum(pn.pago),sum(pe.pago),(sum(pn.pago)+sum(pe.pago))
from pn
full join pe on pn.clave=pe.clave
where pn.dias=2 or pe.dias=2
group by pn.clave,pe.claveSi sale todos los datos, la consulta esta bien.
Prueba
ddd_ddd
23-09-2005, 05:51:08
perdon por haber puesto otro hilo, lo que pasa es que como crei que lo del full join era otro tema a tratar puse el otro hilo....
pido una disculpa y gracias.....
y con referencia a la consulta anterior es lo mismo, si la clave no existe en cualquiera de las 2 tablas no pone la suma total,
intente con left join y right join pero es el mismo problema....
espero que me puedan ayudar....... gracias
vBulletin v3.6.8, Derechos ©2000-2024, Jelsoft Enterprises Ltd.