Retroceder   Foros del Web > Programación para sitios web > Bases de Datos > Mysql

Respuesta
 
Herramientas Desplegado
Antiguo 09-nov-2007, 05:52   #1 (permalink)
qamelot ha deshabilitado el karma
 
Fecha de Ingreso: marzo-2006
Mensajes: 12
Dos sumas de diferentes campos en una tabla

Hola! Llevo ya un tiempo intentando hacer una operación en la base de datos, pero no la consigo de ninguna forma...

Tiene que ser una tontería, pero yo no lo saco (todos los comandos que he probado me dan error).

La cosa es que tengo en una tabla el campo Consumo1 y el campo Consumo2, y lo que quiero es que me devuelva la suma de Consumo1 y Consumo2 de toda la tabla.

Lo he intentado de varias formas, por ejemplo:

SELECT (SELECT sum(consumo1) FROM gas WHERE distrito1="Madrid") AS q1, (SELECT
sum(consumo2) FROM gas WHERE distrito2="Madrid") AS q2;

Eso me devuelve la suma del consumo de esa ciudad en los dos distritos, pero por separado... y a mi me gustaría que me lo devolviese junto para después hacerle el order by y tenerlo ya ordenado por consumo de mayor a menor.



He probado

SELECT (SELECT sum(consumo1) FROM gas WHERE distrito1="Madrid") AS q1, (SELECT
sum(consumo2) FROM gas WHERE distrito2="Madrid") AS q2 order by q1+q2;

¿Alguna idea? Muchas gracias
qamelot está desconectado   Responder Citando
Antiguo 09-nov-2007, 09:33   #2 (permalink)
skatomundo tiene algunos puntos positivos de karma
 
Avatar de skatomundo
 
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago - CL
Mensajes: 1.472
Enviar un mensaje por MSN a skatomundo Enviar un mensaje por Skype™ a skatomundo
Re: Dos sumas de diferentes campos en una tabla

puedes hacer algo así, pero tengo duda sobre la definición de distrito1 y distrito2 son campos distintos.. que me indicaran un lugar diferente para cada tupla?

bueno mira
Código PHP:
SELECT
consumos
.consumo1,
consumos.consumo2,
(
consumos.consumo1 consumos.consumo2) as total_consumo,
consumos.destrito1,
consumos.distrito2
FROM
consumos
GROUP BY
consumos
.destrito1,consumos.distrito2 
puedes hacer que sumen los 2 valores, pero sobre el como tratas los diferentes distritos en una misma tupla.. lo dudo..

saludos,
__________________
Firebug
skatomundo está desconectado   Responder Citando
Antiguo 12-nov-2007, 03:36   #3 (permalink)
qamelot ha deshabilitado el karma
 
Fecha de Ingreso: marzo-2006
Mensajes: 12
Re: Dos sumas de diferentes campos en una tabla

Perdón, creo que no me expresé bien

Lo que yo quiero es ir acumulando la suma del consumo1 + el consumo2, pero si el consumo2 es igual al consumo1, entonces en vez de acumular consumo1 + consumo2 en la cifra, quiero que se sume otro valor (10.000)

Eso es lo que no se como hacer.... porque se puede poner

SELECT
consumos.consumo1,
consumos.consumo2,
(consumos.consumo1 + consumos.consumo2) as total_consumo,

pero entonces sólo suma eso, r1+r2 siempre... a mi me gustaría que se sumara r1+r2 siempre que r1 <> r2, si r1=r2, entonces que se sume otra cantidad mayor.


Con:

SELECT
consumos.consumo1,
consumos.consumo2,
(consumos.consumo1 + consumos.consumo2) as total_consumo,
consumos.destrito1,
consumos.distrito2
FROM
consumos
Where consumos.consumo1 <> consumos.consumo2
GROUP BY
consumos.destrito1,consumos.distrito2

estaría haciendo que sólo sume los que sean iguales... pero faltaría sumar 10000 a los que fueran iguales....


Espero haberme explicado bien

Muchas gracias!
qamelot está desconectado   Responder Citando
Respuesta

No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 01:38.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93