En este grupo En todos

Foro de SQL



Sumar 2 Consultas unidas

Escrito por Gonzalo Salazar Galleguillos
el 11/07/2007

Hola mira te cuento mi problema:

Estoy usando un programa q se llama IBM iseries Navigator el cual navega por la base de datos en cuestion.

Quiero el resultado de 2 consultas que por separado esta comprobado que funcionan




SELECT  COUNT(O. EQUIPO)
FROM  ADATAPROD. ORDENES O
WHERE  O. INSTALACION =4 AND O. FECHA_CUMPLIDA>=20070101
AND O. ESTADO_OT="T"  AND O. MOTIVO=50 AND O. EQUIPO  IN ( SELECT P. EQUIPO
                                                        FROM ADATAPROD. PLAN P
                                                        WHERE P. INSTALACION=4 AND P. MOTIVO=50)

UNION
SELECT DISTINCT COUNT (P2. EQUIPO)
FROM ADATAPROD. PLAN P2
WHERE P2. FECHA_TP>=20070101 AND P2. FECHA_TP<= 20070731 AND P2. INSTALACION=4 AND P2. MOTIVO=50;


Bueno ahi estan unidas y el resultado a eso es

Item

54

162

Que son la cantidad de filas que rescato de cada una de las tablas (2, ordenes y plan)

Lo que necesito es el total de eso. 


Ojala me puedas ayudar....

Santiago Carela Peguero
Republica Dominicana...
Escrito por Santiago Carela Peguero
el 11/07/2007

Prueba usando tabla temporal



Create table ##temp (x int)

Insert into ##pru

Select  count(o. Equipo)
from  adataprod. Ordenes o
where  o. Instalacion =4 and o. Fecha_cumplida>=20070101
and o. Estado_ot="t"  and o. Motivo=50 and o. Equipo  in ( select p. Equipo
                                                        from adataprod. Plan p
                                                        where p. Instalacion=4 and p. Motivo=50)

union
select distinct count (p2. Equipo)
from adataprod. Plan p2
where p2. Fecha_tp>=20070101 and p2. Fecha_tp<= 20070731 and p2. Instalacion=4 and p2. Motivo=50;

Select sum(x)  from ##pru


Escrito por Gonzalo Salazar Galleguillos
el 11/07/2007

Gracias por tu respuesta pero no puedo crear tablas, por que no tengo los permisos, esta no es una BD mia, yo manipulo un programa que solo me permite hacer consultas. En todo caso le encontre una solucion, mira:


SELECT SUM(TABLA. TOTAL) AS TOTALF
FROM ( SELECT  COUNT(O. EQUIPO) AS TOTAL
                            FROM  ADATAPROD. ORDENES O
                            WHERE  O. INSTALACION =4 AND                                                             O. FECHA_CUMPLIDA>=20070101
                            AND O. ESTADO_OT="T"  AND O. MOTIVO=50 AND                                 O. EQUIPO  IN ( SELECT P. EQUIPO
                                                         FROM  ADATAPROD. PLAN P
                                                         WHERE P. INSTALACION=4 AND P. MOTIVO=50)
                            UNION
                            SELECT COUNT(P2. EQUIPO) AS TOTAL
                            FROM ADATAPROD. PLAN P2
                            WHERE P2. FECHA_TP>=20070101 AND                                             P2. FECHA_TP<= 20070731 AND                                                             P2. INSTALACION=4 AND P2. MOTIVO=50
                            ) TABLA;

Mcts Isaias Islas González
Distrito Federal, Mé...
Escrito por Mcts Isaias Islas González
el 12/07/2007

Select (

Select count(o. Equipo)

From adataprod. Ordenes o

Where o. Instalacion =4 and o. Fecha_cumplida>=20070101

And o. Estado_ot="t" and o. Motivo=50 and o. Equipo in ( select p. Equipo

From adataprod. Plan p

Where p. Instalacion=4 and p. Motivo=50))

+ (

Select distinct count (p2. Equipo)

From adataprod. Plan p2

Where p2. Fecha_tp>=20070101 and p2. Fecha_tp<= 20070731 and p2. Instalacion=4 and p2. Motivo=50)

Escrito por Turco
el 01/05/2009
Disculpa yo tengo un problema similar... Necesito sumar dos valores de consultas diferentes te paso lo que seria mi consulta.
Usanod tablas temporales no se por que no me funciona...
Agradecere tu ayuda...

SELECT SUM(Monto_en_Pesos) / 2 AS "Total Compartido"
FROM Impuestos AS I
WHERE (MONTH(Fecha_Vencimiento) = 4) AND (YEAR(Fecha_Vencimiento) = 2009) AND (Tipo LIKE "C") AND (IdPersona = 1)
UNION
SELECT SUM(Monto_en_Pesos) AS "Total NoCompartido"
FROM Impuestos AS I
WHERE (MONTH(Fecha_Vencimiento) = 4) AND (YEAR(Fecha_Vencimiento) = 2009) AND (Tipo LIKE "NC") AND (IdPersona = 2)



" PRUEBA USANDO TABLA TEMPORAL


CREATE TABLE ##TEMP (X INT)
INSERT INTO ##PRU
SELECT COUNT(O. EQUIPO)
FROM ADATAPROD. ORDENES O
WHERE O. INSTALACION =4 AND O. FECHA_CUMPLIDA>=20070101
AND O. ESTADO_OT="T" AND O. MOTIVO=50 AND O. EQUIPO IN ( SELECT P. EQUIPO
FROM ADATAPROD. PLAN P
WHERE P. INSTALACION=4 AND P. MOTIVO=50)

UNION
SELECT DISTINCT COUNT (P2. EQUIPO)
FROM ADATAPROD. PLAN P2
WHERE P2. FECHA_TP>=20070101 AND P2. FECHA_TP<= 20070731 AND P2. INSTALACION=4 AND P2. MOTIVO=50;
SELECT SUM(X) FROM ##PRU

"

por santiago (Julio 2007)



Esteban
Antioquia, Colombia
Escrito por Esteban
el 03/07/2009
sumalas en un mismo select

Select ( SELECT COUNT(O. EQUIPO)
FROM ADATAPROD. ORDENES O
WHERE O. INSTALACION =4 AND O. FECHA_CUMPLIDA>=20070101
AND O. ESTADO_OT="T" AND O. MOTIVO=50 AND O. EQUIPO IN ( SELECT P. EQUIPO
FROM ADATAPROD. PLAN P
WHERE P. INSTALACION=4 AND P. MOTIVO=50)
)+

(SELECT DISTINCT COUNT (P2. EQUIPO)
FROM ADATAPROD. PLAN P2
WHERE P2. FECHA_TP>=20070101 AND P2. FECHA_TP<= 20070731 AND P2. INSTALACION=4 AND P2. MOTIVO=50); y listo


sintaxis: selec (select1)+(select2) bueno esto lo hice en Sql creo que da lo mismo en oracle y otros lenguajes de bases de datos