QUERY

11/02/2008 - 20:28 por Jaime | Informe spam
Tengo una tabla con varios datos, entre ellos, el numempresa, nombre,
direccion, cp
Tb tengo dos vistas (vista_Empresa1 y vista_Empresa2)con una query cada una
en las que existen una serie de numempresa

Necesito crear otra vista, que me saque todos los numempresa de la tabla1 xo
que no esten incluidos los numempresa de la vista_Empresa1 y los numempresa
de la vista_Empresa2
Como puedo hacer esto?

Gracias.

Preguntas similare

Leer las respuestas

#6 Jaime
12/02/2008 - 10:05 | Informe spam
estoy uniendo las vistas, pero luego me da error cuando hago el select.
Como deberia hacerlo?.
Gracias.

"Jaime" escribió en el mensaje
news:
Mostrar la cita
#7 Carlos M. Calvelo
12/02/2008 - 12:57 | Informe spam
Hola Jaime,

On 11 feb, 20:51, "Jaime" wrote:
Mostrar la cita
La empresa que tenga 'todos' los productos 4,5,6,7 y 8 nunca podrá
estar en vista_Empresa1 o vista_Empresa2. El problema se reduce
entonces a obtener todas aquellas empresas que tengan 'todos' los
productos 4,5,6,7 y 8.

Que viene a ser algo como:
'Dame las empresas e que tienen todos los productos p del conjunto
{4,5,6,7,8}'

Eso de 'todos los productos p...' no se puede expresar en SQL. Pero
lo siguiente es equivalente:

'Dame las empresas e para las que no existe un producto p
del conjunto {4,5,6,7,8} de tal manera que no existe
la combinación (e,p).'

select distinct t1.numempresa
from tabla1 as t1
where not exists
(select p1.*
from (select 4 as producto
union select 5
union select 6
union select 7
union select 8) as p1
where not exists
(select distinct *
from tabla1
where numempresa=t1.numempresa
and producto=p1.producto))

Saludos,
Carlos
#8 Carlos M. Calvelo
12/02/2008 - 13:04 | Informe spam
Hola Jaime,

On 11 feb, 22:33, "Jaime" wrote:
Mostrar la cita
Pues asi:

select distinct numempresa from tabla1
where numempresa not in
(
select numempresa from vista_Empresa1
union
select numempresa from vista_empresa2
)

Pero como he comentado en mi otro post
esto no es necesario porque ahora aun tienes
el problema de seleccionar las empresas que
tienen todos los productos 4,5,6,7 y 8.

Saludos,
Carlos
#9 Carlos M. Calvelo
12/02/2008 - 14:20 | Informe spam
On 12 feb, 12:57, "Carlos M. Calvelo" wrote:
Mostrar la cita
Por si he interpretado mal y lo que realmente quieres
son la empresas que tengan *al menos uno* de los
productos {4,5,6,7,8} (en vez de *todos*), entonces
seguro que lo que buscas es esto:

select distinct numempresa from tabla1
where numempresa not in
(
select numempresa from vista_Empresa1
union
select numempresa from vista_empresa2
)
and producto in (4,5,6,7,8)

Saludos,
Carlos
#10 Juan Armani
12/02/2008 - 14:44 | Informe spam
Hola Jaime,
sera algo como esto lo que quieres hacer?

Select Numempresa From Tabla1 where Numempresa not in (Select numempresa
From Vista1 )
and Producto in (4,5,6,7,8)
union
Select Numempresa From Tabla1 where Numempresa not in (Select numempresa
From Vista2 )
and Producto in (4,5,6,7,8)

lo puedes hacer con union o agregando el filtor de la Vista2 en el primer
select..
Saludos.

Juan Armani

"Jaime" escribió en el mensaje
news:OERa%
Mostrar la cita
Ads by Google
Search Busqueda sugerida