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

sumar campos de tablas diferentes

Estas en el tema de sumar campos de tablas diferentes en el foro de Mysql en Foros del Web. Hola amigos necesito de su ayuda….! Tengo dos tablas, en la tabla contrato hay un solo valor y en la tabla meses tengo varios valores, ...
  #1 (permalink)  
Antiguo 19/01/2009, 07:17
 
Fecha de Ingreso: enero-2009
Mensajes: 67
Antigüedad: 15 años, 3 meses
Puntos: 1
sumar campos de tablas diferentes

Hola amigos necesito de su ayuda….!
Tengo dos tablas, en la tabla contrato hay un solo valor y en la tabla meses tengo varios valores, lo que deseo es sumar ese valor de la tabla 1 con todos los valores de la tabla 2 pero cuando no haya valores a sumar en la tabla meses, deseo que se muestre en la columna valorsumadomes el valor que contiene la tabla contrato, pero esto no me muestra y visualiza NULL.

Este es el query que ejecuto y me muestra lo siguientes :

SELECT contrato.codigomatricula, contrato.nombres,(contrato.valorunitario)+sum(mese s.valor) as valorsumadomes, contrato.valorunitario as valorcontrato
FROM contrato
JOIN meses ON meses.codigomatricula=contrato.codigomatricula group by contrato.nombres order by contrato.nombres

codigomatricula- nombres - valorsumadomes - valorcontrato

14185 ABAD----------- 64_________________16

13380 ABAR----------- _________________16

13184 ABAT----------- 64 _________________16

11693 ABRI----------- 64_________________16

10650 ACER----------- 64_________________16

13482 ACOS----------- 64_________________16

13411 ACOA-----------76_________________16

12543 ACUÑ-----------48_________________16

10247 AGAM-----------64_________________16

13484 AGILE----------- 64________________16

10652 AGILA-----------64_________________16

11605 AGUA----------- _________________16

10654 AGUU----------- 48_________________16

10655 AGAL----------- _________________16

También realice este query y realiza exactamente lo mismo que lo anterior, sin mostrarme el valor de la tabla contrato………………..

SELECT contrato.codigomatricula,contrato.nombres,
sum(MESES.VALOR)+(CONTRATO.VALORUNITARIO) AS Sumavaloremes,
contrato.valorunitario ValordeContrato
FROM CONTRATO,MESES
WHERE CONTRATO.CODIGOMATRICULA = MESES.CODIGOMATRICULA GROUP BY NOMBRES

Gracias por ayudarme amigos!

Última edición por ivan2009; 19/01/2009 a las 08:03
  #2 (permalink)  
Antiguo 19/01/2009, 12:31
 
Fecha de Ingreso: diciembre-2008
Mensajes: 39
Antigüedad: 15 años, 4 meses
Puntos: 1
Respuesta: sumar campos de tablas diferentes

Cita:
SELECT contrato.codigomatricula,contrato.nombres,
sum(MESES.VALOR)+(CONTRATO.VALORUNITARIO) AS Sumavaloremes,
contrato.valorunitario ValordeContrato
FROM CONTRATO,MESES
WHERE CONTRATO.CODIGOMATRICULA = MESES.CODIGOMATRICULA GROUP BY NOMBRES
El error reside en que suprimiste el "AS" para el alias del campo.
mas alla de eso, ambas soluciones son equivalentes.
  #3 (permalink)  
Antiguo 19/01/2009, 13:11
 
Fecha de Ingreso: enero-2009
Mensajes: 67
Antigüedad: 15 años, 3 meses
Puntos: 1
Respuesta: sumar campos de tablas diferentes

Te cuento que me olvidaba del AS, si está puesto pero no me funciona la suma, gracias por tu ayuda
  #4 (permalink)  
Antiguo 19/01/2009, 13:16
 
Fecha de Ingreso: diciembre-2008
Mensajes: 39
Antigüedad: 15 años, 4 meses
Puntos: 1
Respuesta: sumar campos de tablas diferentes

si.
por otro lado, en una consulta estas usando el alias:
valorsumadomes
y por otra:
Sumavaloremes
quizas estas retornando algo vacio?

utiliza un inner join, en vez de join.
  #5 (permalink)  
Antiguo 20/01/2009, 08:03
 
Fecha de Ingreso: enero-2009
Mensajes: 67
Antigüedad: 15 años, 3 meses
Puntos: 1
Respuesta: sumar campos de tablas diferentes

sigo si solucionar el problema....

Al parecer es el campo de tabla meses que no me permite sumar a lo que tiene la tabla contrato o si tienes otra idea de como sumar como lo haría, te lo agradecería


gracias
  #6 (permalink)  
Antiguo 20/01/2009, 11:00
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: sumar campos de tablas diferentes

SELECT contrato.codigomatricula, contrato.nombres,IFNULL((contrato.valorunitario+su m(meses.valor)), contrato.valorunitario) as valorsumadomes, contrato.valorunitario as valorcontrato
FROM contrato
JOIN meses ON meses.codigomatricula=contrato.codigomatricula group by contrato.nombres order by contrato.nombres

No lo he probado

Última edición por jurena; 20/01/2009 a las 12:29
  #7 (permalink)  
Antiguo 20/01/2009, 11:42
 
Fecha de Ingreso: enero-2009
Mensajes: 67
Antigüedad: 15 años, 3 meses
Puntos: 1
Respuesta: sumar campos de tablas diferentes

Muchas gracias jurena, eres una Diosa, le corregi algo y ya me funciono, aqui dejo lo corregido


SELECT contrato.codigomatricula, contrato.nombres,

IFNULL(sum(meses.valor)+meses.valor,
contrato.valorunitario) as valormeses,

contrato.valorunitario as valorcontrato
FROM contrato
JOIN meses ON meses.codigomatricula=contrato.codigomatricula group by contrato.nombres order by contrato.nombres


muchas, pero muchas gracias
  #8 (permalink)  
Antiguo 20/01/2009, 12:00
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: sumar campos de tablas diferentes

amigo ivan2009, me alegro; pero debo aclararte que no soy ni diosa ni diablesa, como mi nick parece sugerir, sino un simple aficionado con un nick algo engañoso. Por cierto, la corrección que has hecho es muy acertada, pues no usé bien la funcion IFNULL(), pero esa era la idea (he editado y corregido).

Última edición por jurena; 20/01/2009 a las 12:27
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 07:30.