Ayuda con consulta INTERSECT please...

23/05/2005 - 17:25 por JorTriFa | Informe spam
Hola a todos,

Tengo la siguiente consulta (quiero todas las emrpesas que realizan el
servicio 102 y 104):

SELECT idEmpresa
FROM ServiciosRealizaEmpresa
WHERE idservicio = 102
INTERSECT
SELECT idEmpresa
FROM ServiciosRealizaEmpresa
WHERE idservicio = 104

y la consuta me da un errorpuedo utilizar la sentencia INTERSECT??

Existe otra forma de hacerlo?

La tabla, tiene los siguientes valores: (se supone que me deberia dar las
empresas 13 y 15)

idEmpresa idservicio
11 101
11 102
11 201
11 202
11 204
11 205
12 102
12 103
13 101
13 102
13 104
14 101
14 201
14 202
14 204
14 401
15 102
15 104
15 201
15 204

Gracias a to2

Preguntas similare

Leer las respuestas

#6 Alejandro Mesa
23/05/2005 - 19:14 | Informe spam
Tambien,

...
having
count(distinct idservicio) = 2



AMB


"Alejandro Mesa" wrote:

Mostrar la cita
#7 Alejandro Mesa
23/05/2005 - 19:14 | Informe spam
Trata:

select
idEmpresa
from
t1
where
idservicio in (102, 104)
group by
idEmpresa
having
min(idservicio) != max(idservicio)
go


AMB

"JorTriFa" wrote:

Mostrar la cita
#8 Alejandro Mesa
23/05/2005 - 19:16 | Informe spam
Maxi,

Mostrar la cita
Este query te daria las filas donde la columna idservicio es igual a 102 ó
104, pero eso no asegura que tengan los dos 102 y 104.


AMB

"Maxi" wrote:

Mostrar la cita
#9 Alejandro Mesa
23/05/2005 - 19:52 | Informe spam
Maxi,

Para asegurar que ambos servicios estan siendo usados puedes usar algo asi
como:

...
having count(distinct idservicio) = 2

o tambien puedes usar en este caso (solamente son dos servicios):

...
having min(idservicio) != max(idservicio)

sin necesidad de hacer una union.


Ejemplo:

select
idEmpresa
from
t1
where
idservicio in (102, 104)
group by
idEmpresa
having
min(idservicio) != max(idservicio)
go


select
idEmpresa
from
t1
where
idservicio in (102, 104)
group by
idEmpresa
having
count(distinct idservico) = 2
go


AMB

"Maxi" wrote:

Mostrar la cita
#10 Alejandro Mesa
23/05/2005 - 19:55 | Informe spam
Esta operación se conoce como "relational division". Te paso un link sobre el
tema, lastima que no lo tengo en español.

Relational Divisio
http://www.dbazine.com/ofinterest/o...20division


AMB

"Maxi" wrote:

Mostrar la cita
Ads by Google
Search Busqueda sugerida