SQL - SUMAR RESULTADO DE 2 CONSULTAS

 
Vista:

SUMAR RESULTADO DE 2 CONSULTAS

Publicado por Gatoubb (4 intervenciones) el 11/07/2007 14:40:27
Hola les cuento tengo una pequeña duda necesito saber si puedo sumar el resultado de dos consultas unidas por UNION, les muestro la consulta:

(SELECT COUNT(O.ORDEN)
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);

el resultado da
algo asi

item
------
50
100


lo que yo quiero hacer es sumar ambos valores

¿se puede?¿como?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:SUMAR RESULTADO DE 2 CONSULTAS

Publicado por lmorilla (11 intervenciones) el 11/07/2007 15:32:38
Esto debería funcionarte

SELECT
(SELECT COUNT(O.ORDEN)
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);
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

RE:RE:SUMAR RESULTADO DE 2 CONSULTAS

Publicado por Gatoubb (4 intervenciones) el 11/07/2007 15:41:11
NO FUNCIONO :S

MUCHAS GRACIAS DE TODAS MANERAS

QUIEN MAS ME PUEDE AYUDAR??????
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:RE:SUMAR RESULTADO DE 2 CONSULTAS

Publicado por lmorilla (11 intervenciones) el 11/07/2007 15:45:29
He realizado una prueba antes de responderte ¿por qué no te funciona?
si te dá un mensaje de error dime el código, si te dá un resultado dime cual e intentaré ayudarte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:RE:SUMAR RESULTADO DE 2 CONSULTAS

Publicado por Gatoubb (4 intervenciones) el 11/07/2007 15:49:45
Este es el mensaje que me arroja

[SQL0104] Símbolo <FIN DE SENTENCIA> no válido. Símbolos válidos: + - AS <IDENTIFIER>. Causa . . . . . : Se ha detectado un error de sintaxis en el símbolo <FIN DE SENTENCIA>. El símbolo <FIN DE SENTENCIA> no es un símbolo válido. Una lista parcial de símbolos válidos es + - AS <IDENTIFIER>. Esta lista asume que la sentencia es correcta hasta el símbolo. El error puede estar anteriormente en la sentencia, pero la sintaxis de la sentencia aparece como válida hasta este punto.Recuperación . : Efectúe una o más de las siguientes acciones y vuelva a intentar la petición:-- Verifique la sentencia SQL en el área del símbolo <FIN DE SENTENCIA>. Corrija la sentencia. El error podría ser la omisión de una coma o comillas; podría tratarse de una palabra con errores ortográficos, o podría estar relacionado con el orden de las cláusulas.-- Si el símbolo de error es <FIN DE SENTENCIA>, corrija la sentencia SQL porque no finaliza con una cláusula válida.

Se ha finalizado el proceso ya que la sentencia resaltada no se ha completado satisfactoriamente

esto fue lo que coloque

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 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) ) ;

Gracias por ayudarme
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:RE:SUMAR RESULTADO DE 2 CONSULTAS

Publicado por lmorilla (11 intervenciones) el 12/07/2007 08:24:31
Existe un problema con el error que me dice, tu interface de SQL y tu versión de SQL es muy distinta a la mia, por lo que no puedo jugar con el signo y el select hasta dar con la respuesta (si la hay como la he abordado), por lo que si te urge, te ofrezco una solución con la que da igual la herramienta. Espero te sirva.

CREATE VIEW NOM_TABLA AS
SELECT COUNT(O.EQUIPO) AS NOM_COLUMNA
FROM ADATAPROD.ORDENES O, ADATAPROD.PLAN P
WHERE O.INSTALACION = 4 AND O.FECHA_CUMPLIDA>=20070101
AND O.ESTADO_OT='T' AND O.MOTIVO=50 AND O.EQUIPO = P.EQUIPO
AND P.INSTALACION=4 AND P.MOTIVO=50)
UNION
SELECT COUNT(P2.EQUIPO) AS NOM_COLUMNA
FROM ADATAPROD.PLAN P2
WHERE P2.FECHA_TP>=20070101 AND P2.FECHA_TP<= 20070731 AND P2.INSTALACION=4 AND P2.MOTIVO=50

SELECT SUM(NOM_COLUMNA) FROM NOM_TABLA
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:RE:SUMAR RESULTADO DE 2 CONSULTAS

Publicado por victor acosta (2 intervenciones) el 15/06/2016 22:38:20
mi hermano muchas gracias a mi si me funciono
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:RE:SUMAR RESULTADO DE 2 CONSULTAS

Publicado por Mimi (1 intervención) el 16/02/2017 18:40:02
A mi si me funciono, mil gracias por tu ayuda.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:RE:SUMAR RESULTADO DE 2 CONSULTAS

Publicado por CARLOS (1 intervención) el 03/07/2018 19:22:26
Solo falta el FROM, para el caso sería FROM DUAL... es decir así:

1
2
3
4
5
6
7
8
9
10
11
12
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 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) )
FROM DUAL;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:SUMAR RESULTADO DE 2 CONSULTAS

Publicado por victor acosta (2 intervenciones) el 15/06/2016 22:35:33
ok lo intentare
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:SUMAR RESULTADO DE 2 CONSULTAS

Publicado por Jasson Ulloa (2 intervenciones) el 26/11/2021 18:34:24
Estupendo muchas gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RESPUESTA

Publicado por Gatoubb (4 intervenciones) el 11/07/2007 19:13:00
1
2
3
4
5
6
7
8
9
10
11
12
SELECT (( A.CUMP / SUM(TABLA.TOTAL) )*100) AS PORCEN_CONFIA
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<= 20071231 AND P2.INSTALACION=4 AND P2.MOTIVO=50
    ) TABLA ;

bueno qedo algo desordenada parece pero esa es la idea.,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RESPUESTA

Publicado por Gary (1 intervención) el 19/06/2014 20:41:37
select
convert(float,(SELECT COUNT(*)
FROM [dbo].[059_RECVDTL_OK] A
LEFT JOIN [dbo].[059_PODTL_HIS] B ON A.ORDE = B.ORDE
WHERE A.SEQUENCE = B.SEQUENCE AND A.POSITION=B.POSITION and (A.ACTUAL_RECEIPT_DATE BETWEEN DATEADD(DD,-2,B.CURR_DEL_DATE ) AND DATEADD(DD,+3,B.CURR_DEL_DATE))
and (YEAR(A.ACTUAL_RECEIPT_DATE)=YEAR(GETDATE()) AND MONTH(A.ACTUAL_RECEIPT_DATE)=MONTH(GETDATE()))))
/
convert(float,(SELECT COUNT(*) FROM [dbo].[059_RECVDTL_OK] A
LEFT JOIN [dbo].[059_PODTL_HIS] B ON A.ORDE = B.ORDE
WHERE A.SEQUENCE = B.SEQUENCE AND A.POSITION=B.POSITION
and (YEAR(A.ACTUAL_RECEIPT_DATE)=YEAR(GETDATE()) AND MONTH(A.ACTUAL_RECEIPT_DATE)=MONTH(GETDATE()))))


Te mando un ejemplo, prueba haciendo ese convert al count.
Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar