union de 2 select (muy urgente)

01/02/2005 - 13:38 por Anonimo | Informe spam
Hola amigos !!!!

os planteo una duda muy urgentisima.
Tengo estas dos SELECT y tengo que unirlas


(select controlof.codigoof, faseof.codigofase from controlof
inner join faseof
on controlof.id = faseof.codigoof
WHERE (ControlOF.CodigoOF = '0994/04'))


(SELECT ControlOF.CodigoOF, PuestoManual.CodigoFase,
SUM(PuestoManual.Buenas) AS good, SUM(PuestoManual.Malas) AS bad
FROM ControlOF INNER JOIN
PuestoManual ON ControlOF.CodigoOF PuestoManual.CodigoOF
WHERE (ControlOF.CodigoOF = '0994/04')
GROUP BY ControlOF.CodigoOF, PuestoManual.CodigoFase)

los resultados de ambas son

CodigoOF CodigoFase
0994/04 10
0994/04 20
0994/04 30
0994/04 40
0994/04 50
0994/04 60
0994/04 34

CodigoOF CodigoFase good bad
0994/04 40 12 0
0994/04 50 26 0

el resultado que pretendo es algo asi

CodigoOF CodigoFase good bad
0994/04 10 null null
0994/04 20 null null
0994/04 30 null null
0994/04 40 12 0
0994/04 50 26 0
0994/04 60 null null
0994/04 34 null null


es posible o estoy intentando un imposible ????

Preguntas similare

Leer las respuestas

#1 Maxi
01/02/2005 - 13:39 | Informe spam
Hola, es muy posible, debes usar UNION o UNION ALL, algo asi como:

=
select controlof.codigoof, faseof.codigofase,0,0 from controlof
inner join faseof
on controlof.id = faseof.codigoof
WHERE (ControlOF.CodigoOF = '0994/04'))

UNION ALL

(SELECT ControlOF.CodigoOF, PuestoManual.CodigoFase,
SUM(PuestoManual.Buenas) AS good, SUM(PuestoManual.Malas) AS bad
FROM ControlOF INNER JOIN
PuestoManual ON ControlOF.CodigoOF PuestoManual.CodigoOF
WHERE (ControlOF.CodigoOF = '0994/04')
GROUP BY ControlOF.CodigoOF, PuestoManual.CodigoFase)

=

Salu2
Maxi


escribió en el mensaje
news:
Hola amigos !!!!

os planteo una duda muy urgentisima.
Tengo estas dos SELECT y tengo que unirlas


(select controlof.codigoof, faseof.codigofase from controlof
inner join faseof
on controlof.id = faseof.codigoof
WHERE (ControlOF.CodigoOF = '0994/04'))


(SELECT ControlOF.CodigoOF, PuestoManual.CodigoFase,
SUM(PuestoManual.Buenas) AS good, SUM(PuestoManual.Malas) AS bad
FROM ControlOF INNER JOIN
PuestoManual ON ControlOF.CodigoOF > PuestoManual.CodigoOF
WHERE (ControlOF.CodigoOF = '0994/04')
GROUP BY ControlOF.CodigoOF, PuestoManual.CodigoFase)

los resultados de ambas son

CodigoOF CodigoFase
0994/04 10
0994/04 20
0994/04 30
0994/04 40
0994/04 50
0994/04 60
0994/04 34

CodigoOF CodigoFase good bad
0994/04 40 12 0
0994/04 50 26 0

el resultado que pretendo es algo asi

CodigoOF CodigoFase good bad
0994/04 10 null null
0994/04 20 null null
0994/04 30 null null
0994/04 40 12 0
0994/04 50 26 0
0994/04 60 null null
0994/04 34 null null


es posible o estoy intentando un imposible ????


Respuesta Responder a este mensaje
#2 Salvador Ramos
01/02/2005 - 13:40 | Informe spam
Hola:

Para eso tienes el operador UNION (o UNION ALL), y además ambas selects
deben devolver el mismo numero de campos. En tu caso, he añadido dos
columnas null a la primera select y he puesto el operador UNION ALL:

(select controlof.codigoof, faseof.codigofase, NULL AS Good, NULL AS Bad
from controlof
inner join faseof
on controlof.id = faseof.codigoof
WHERE (ControlOF.CodigoOF = '0994/04'))

UNION ALL

(SELECT ControlOF.CodigoOF, PuestoManual.CodigoFase,
SUM(PuestoManual.Buenas) AS good, SUM(PuestoManual.Malas) AS bad
FROM ControlOF INNER JOIN
PuestoManual ON ControlOF.CodigoOF PuestoManual.CodigoOF
WHERE (ControlOF.CodigoOF = '0994/04')
GROUP BY ControlOF.CodigoOF, PuestoManual.CodigoFase)


Un saludo
Salvador Ramos
Murcia - España
[Microsoft MVP SQL Server]
www.helpdna.net (información sobre SQL server, Windows DNA y .NET)

escribió en el mensaje
news:
Hola amigos !!!!

os planteo una duda muy urgentisima.
Tengo estas dos SELECT y tengo que unirlas


(select controlof.codigoof, faseof.codigofase from controlof
inner join faseof
on controlof.id = faseof.codigoof
WHERE (ControlOF.CodigoOF = '0994/04'))


(SELECT ControlOF.CodigoOF, PuestoManual.CodigoFase,
SUM(PuestoManual.Buenas) AS good, SUM(PuestoManual.Malas) AS bad
FROM ControlOF INNER JOIN
PuestoManual ON ControlOF.CodigoOF > PuestoManual.CodigoOF
WHERE (ControlOF.CodigoOF = '0994/04')
GROUP BY ControlOF.CodigoOF, PuestoManual.CodigoFase)

los resultados de ambas son

CodigoOF CodigoFase
0994/04 10
0994/04 20
0994/04 30
0994/04 40
0994/04 50
0994/04 60
0994/04 34

CodigoOF CodigoFase good bad
0994/04 40 12 0
0994/04 50 26 0

el resultado que pretendo es algo asi

CodigoOF CodigoFase good bad
0994/04 10 null null
0994/04 20 null null
0994/04 30 null null
0994/04 40 12 0
0994/04 50 26 0
0994/04 60 null null
0994/04 34 null null


es posible o estoy intentando un imposible ????


Respuesta Responder a este mensaje
#3 Tinoco
01/02/2005 - 13:53 | Informe spam
Hola, yo trataria de utilizar un subConsulta relacionandola con la consulta
principal, algo asi:

Select controlof.codigoof,
faseof.codigofase,
good,
bad
From controlof
Inner join faseof on controlof.id = faseof.codigoof
Left outer join
(SELECT ControlOF.CodigoOF AS f_codigo,
PuestoManual.CodigoFase AS f_codFase,
SUM(PuestoManual.Buenas) AS good,
SUM(PuestoManual.Malas) AS bad
FROM ControlOF
INNER JOIN PuestoManual ON ControlOF.CodigoOF = PuestoManual.CodigoOF
WHERE (ControlOF.CodigoOF = '0994/04')
GROUP BY ControlOF.CodigoOF, PuestoManual.CodigoFase) tblAuxiliar
on f_codigo = controlof.codigoof and f_codFase = faseof.codigofase
WHERE (ControlOF.CodigoOF = '0994/04'))

Espero haber ayudado.

Hermilson Tinoco.
MCDBA, MCSD
Colombia

"" wrote:

Hola amigos !!!!

os planteo una duda muy urgentisima.
Tengo estas dos SELECT y tengo que unirlas


(select controlof.codigoof, faseof.codigofase from controlof
inner join faseof
on controlof.id = faseof.codigoof
WHERE (ControlOF.CodigoOF = '0994/04'))


(SELECT ControlOF.CodigoOF, PuestoManual.CodigoFase,
SUM(PuestoManual.Buenas) AS good, SUM(PuestoManual.Malas) AS bad
FROM ControlOF INNER JOIN
PuestoManual ON ControlOF.CodigoOF > PuestoManual.CodigoOF
WHERE (ControlOF.CodigoOF = '0994/04')
GROUP BY ControlOF.CodigoOF, PuestoManual.CodigoFase)

los resultados de ambas son

CodigoOF CodigoFase
0994/04 10
0994/04 20
0994/04 30
0994/04 40
0994/04 50
0994/04 60
0994/04 34

CodigoOF CodigoFase good bad
0994/04 40 12 0
0994/04 50 26 0

el resultado que pretendo es algo asi

CodigoOF CodigoFase good bad
0994/04 10 null null
0994/04 20 null null
0994/04 30 null null
0994/04 40 12 0
0994/04 50 26 0
0994/04 60 null null
0994/04 34 null null


es posible o estoy intentando un imposible ????



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