Sumar valores entre dos tablas...

22/06/2007 - 00:55 por Isabela | Informe spam
Hola!

Otra vez yo...perdon lo cansona...pero tengo un problemilla

Tengo dos tablas que no se relacionan entre si, sin embargo debo sumar
los valores de la columna a del atabala x con los valores de la
columna a de la tabla y, cuando en la tabla y esta vacia me debe
mpstrar los valores de la tabla x, pero no me muetra nada:

Lo estoy haciendo asi

SELECT CASE WHEN COUNT(TCOSTOS.IEJE_01) > 0 THEN
SUM(TINGRESOS.IEJE_01) - SUM(TCOSTOS.IEJE_01) ELSE
SUM(ISNULL(TINGRESOS.IEJE_01,0)) END EJE_01
FROM (SELECT * FROM TMPTOTALES WHERE ORDEN = 3) TINGRESOS,
(SELECT * FROM TMPTOTALES WHERE ORDEN P ) TCOSTOS

pero no me funciona. =(

Alguien puede darme una mano... ;)


Gracias de Antemano...

Isabela.

Preguntas similare

Leer las respuestas

#6 Jesús López
25/06/2007 - 16:01 | Informe spam
Yo no veo dos tablas, sólo una, la TMPTOTALES.

Hay varias formas de hacer eso. Aquí tienes alguna de ellas:

Forma 1:

SELECT SUM(IEJE_01) AS EJE_01
FROM
(
SELECT IEJE_01
FROM TMPTOTALES
WHERE ORDEN = 3

UNION ALL

SELECT -IEJE_01 AS IEJE_01
FROM TMPTOTALES
WHERE ORDEN = 50
) AS TOTALES


Forma 2:

SELECT SUM(IEJE_01) AS EJE_01
FROM
(
SELECT (CASE WHEN ORDEN=3 THEN IEJE_01 ELSE -IEJE_01 END) AS IEJE_01
FROM TMPTOTALES
WHERE ORDEN = 3 OR ORDEN = 50
) AS TOTALES

Forma 3:

SELECT SUM(IEJE_01 * (CASE WHEN ORDEN = 3 THEN 1 ELSE -1 END)) AS EJE_01
FROM TMPTOTALES
WHERE ORDEN = 3 OR ORDEN = 50

Forma 4:

SELECT SUM((CASE WHEN ORDEN = 3 THEN IEJE_01 ELSE -IEJE_01 END)) AS EJE_01
FROM TMPTOTALES
WHERE ORDEN = 3 OR ORDEN = 50


Saludos:

Jesús López.
Solid Quality Mentors
www.solidq.com

"Isabela" escribió en el mensaje
news:
Hola!

Otra vez yo...perdon lo cansona...pero tengo un problemilla

Tengo dos tablas que no se relacionan entre si, sin embargo debo sumar
los valores de la columna a del atabala x con los valores de la
columna a de la tabla y, cuando en la tabla y esta vacia me debe
mpstrar los valores de la tabla x, pero no me muetra nada:

Lo estoy haciendo asi

SELECT CASE WHEN COUNT(TCOSTOS.IEJE_01) > 0 THEN
SUM(TINGRESOS.IEJE_01) - SUM(TCOSTOS.IEJE_01) ELSE
SUM(ISNULL(TINGRESOS.IEJE_01,0)) END EJE_01
FROM (SELECT * FROM TMPTOTALES WHERE ORDEN = 3) TINGRESOS,
(SELECT * FROM TMPTOTALES WHERE ORDEN P ) TCOSTOS

pero no me funciona. =(

Alguien puede darme una mano... ;)


Gracias de Antemano...

Isabela.

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida