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

#11 Jaime
12/02/2008 - 14:45 | Informe spam
me estoy liando ;-PPPP

te comento quitando productos.

vista_Empresa1:
select Numempresa from Tabla1 where Producto IN(1) AND (Numempresa NOT IN
(select Numempresa from Tabla1 where (Producto IN (2)))
AQUI ESTAN LOS NUMEMPRESAS CON EL PRODUCTO 1 PERO NO EL 2.

vista_Empresa2
select Numempresa from Tabla1 where Producto IN(2) AND (Numempresa NOT IN
(select Numempresa from Tabla1 where (Producto IN (1)))
AQUI ESTAN LOS NUMEMPRESAS CON EL PRODUCTO 2 PERO NO EL 1

La vista que deseo seria los Numempresa que no esten en la
vista_Empresa1 y vista_Empresa2 pero que tengan los Productos 1 Y 2 o
cualquier otro, SOLO EXIJO QUE ESTEN AMBOS PRODUCTOS Y QUE LOS NUMEMPRESAS
NO ESTEN INCLUIDOS EN LAS VISTA ANTERIORES

se puede hacer esto?
Perdonad las molestias y la smayusculas, no grito, es para resaltar.

Mucha sgrcias nuevamente.


"Carlos M. Calvelo" escribió en el mensaje
news:
On 12 feb, 12:57, "Carlos M. Calvelo" wrote:
Hola Jaime,

On 11 feb, 20:51, "Jaime" wrote:

> Tabla:
> Numempresa, Nombre,Direccion,CP,Producto

> vista_Empresa1:
> select Numempresa from Tabla1 where Producto IN(4,5,6) AND (Numempresa
> NOT
> IN
> (select Numempresa from Tabla1 where (Producto IN (7,8)))

> vista_Empresa2
> select Numempresa from Tabla1 where Producto IN(7,8) AND (Numempresa NOT
> IN
> (select Numempresa from Tabla1 where (Producto IN (4,5,6)))

> La vista que deseo seria los Numempresa que que no esten en la
> vista_Empresa1 y vista_Empresa2 pero que tengan los Productos(4,5,6,7,8)

La empresa que tenga 'todos' los productos 4,5,6,7 y 8 nunca podrá
estar en vista_Empresa1 o vista_Empresa2.



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
Respuesta Responder a este mensaje
#12 Jaime
12/02/2008 - 15:29 | Informe spam
me liioooooooooooo
;-PPPP

"Juan Armani" escribió en el mensaje
news:
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%
estoy uniendo las vistas, pero luego me da error cuando hago el select.
Como deberia hacerlo?.
Gracias.

"Jaime" escribió en el mensaje
news:
podeis echarme una mano?, me estoy volviendo loco.

"Jaime" escribió en el mensaje
news:%
pero como hago para que la vista nueva tenga los numempresa que no
esten en esas vistas???

"Gux (MVP)" escribió en el mensaje
news:
Haga la UNION de las vistas:

SELECT numempresa FROM vista_empresa1
UNION
SELECT numempresa FROM vista_empresa2

y aplique luego el filtro que quiere.

Gustavo Larriera, Microsoft MVP
https://mvp.support.microsoft.com/profile/gux
Este mensaje se proporciona tal como es, sin garantías de ninguna
clase.



"Jaime" wrote:

Tabla:
Numempresa, Nombre,Direccion,CP,Producto

vista_Empresa1:
select Numempresa from Tabla1 where Producto IN(4,5,6) AND
(Numempresa NOT
IN
(select Numempresa from Tabla1 where (Producto IN (7,8)))

vista_Empresa2
select Numempresa from Tabla1 where Producto IN(7,8) AND (Numempresa
NOT IN
(select Numempresa from Tabla1 where (Producto IN (4,5,6)))

La vista que deseo seria los Numempresa que que no esten en la
vista_Empresa1 y vista_Empresa2 pero que tengan los
Productos(4,5,6,7,8)


"Gux (MVP)" escribió en el mensaje
news:
> Utilice el verbo [NOT ] EXISTS en la SELECT para detectar la
> presencia (o
> ausencia) de un dato en una tabla.
>
> Si usted mostrara la estructura de las tablas, algunos datos de
> ejemplo y
> lo
> que quiere obtener, posiblemente podriamos ayudarlo mejor.
>
> Gustavo Larriera, Microsoft MVP
> https://mvp.support.microsoft.com/profile/gux
> Este mensaje se proporciona tal como es, sin garantías de ninguna
> clase.
>
>
>
> "Jaime" wrote:
>
>> 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.
>>
>>
>>





















Respuesta Responder a este mensaje
#13 Carlos M. Calvelo
12/02/2008 - 15:33 | Informe spam
Hola Jaime,


On 12 feb, 14:45, "Jaime" wrote:
me estoy liando ;-PPPP



No pasa nada!
Perdona si soy yo la causa de eso! :)


te comento quitando productos.

vista_Empresa1:
select Numempresa from Tabla1 where Producto IN(1) AND (Numempresa NOT IN
(select Numempresa from Tabla1 where (Producto IN (2)))
AQUI ESTAN LOS NUMEMPRESAS CON EL PRODUCTO 1 PERO NO EL 2.

vista_Empresa2
select Numempresa from Tabla1 where Producto IN(2) AND (Numempresa NOT IN
(select Numempresa from Tabla1 where (Producto IN (1)))
AQUI ESTAN LOS NUMEMPRESAS CON EL PRODUCTO 2 PERO NO EL 1

La vista que deseo seria los Numempresa que no esten en la
vista_Empresa1 y vista_Empresa2 pero que tengan los Productos 1 Y 2 o
cualquier otro, SOLO EXIJO QUE ESTEN AMBOS PRODUCTOS Y QUE LOS NUMEMPRESAS
NO ESTEN INCLUIDOS EN LAS VISTA ANTERIORES

se puede hacer esto?



Pues es el primer post que he puesto con los dos 'not exists'.

Aquella solución te dará todos los numempresa que tengan
*todos* los productos 4,5,6,7 y 8. Todos. Esas empresas podrán
tener mas productos, pero tendrán que al menos tener todos
esos {4,5,6,7,8}

Repito: Si una empresa tiene los productos 4, 5, 6, 7 y 8
entonces esa empresa no puede estar en vista_empresa1 ni
en vista_empresa2 por lo que es innecesario poner la condición
de que no puede estar en esas vistas.

Traducido a este ejemplo último con productos 1 y 2:
Queremos todas las empresas que:
1) no esten en vista_Empresa1: sí tienen producto 1 pero no 2.
2) no esten en vista_Empresa2: sí tienen producto 2 pero no 1.
3) tienen productos 1 y 2

La condición 3) es suficiente ya que si una empresa tiene
productos 1 y 2, esa empresa nunca podrá estar en vista_empresa1
ni en vista_empresa2.

La solución la tienes en mi primer post.

Saludos,
Carlos
Respuesta Responder a este mensaje
#14 Jaime
12/02/2008 - 15:59 | Informe spam
Gracia spor responder.
Se que podria estar claro, pero imaginate que una empresa tiene 1,2 3 como
producto.
Si pongo la condicion Producto=1 AND producto=2, dicho empresa no me sale
por tener el 3, pero me interesa que salga.

Quizas he montado una que no debia, pero es que me estoy volviendo loco.
Gracias nuevamente.


"Carlos M. Calvelo" escribió en el mensaje
news:
Hola Jaime,


On 12 feb, 14:45, "Jaime" wrote:
me estoy liando ;-PPPP



No pasa nada!
Perdona si soy yo la causa de eso! :)


te comento quitando productos.

vista_Empresa1:
select Numempresa from Tabla1 where Producto IN(1) AND (Numempresa NOT IN
(select Numempresa from Tabla1 where (Producto IN (2)))
AQUI ESTAN LOS NUMEMPRESAS CON EL PRODUCTO 1 PERO NO EL 2.

vista_Empresa2
select Numempresa from Tabla1 where Producto IN(2) AND (Numempresa NOT IN
(select Numempresa from Tabla1 where (Producto IN (1)))
AQUI ESTAN LOS NUMEMPRESAS CON EL PRODUCTO 2 PERO NO EL 1

La vista que deseo seria los Numempresa que no esten en la
vista_Empresa1 y vista_Empresa2 pero que tengan los Productos 1 Y 2 o
cualquier otro, SOLO EXIJO QUE ESTEN AMBOS PRODUCTOS Y QUE LOS NUMEMPRESAS
NO ESTEN INCLUIDOS EN LAS VISTA ANTERIORES

se puede hacer esto?



Pues es el primer post que he puesto con los dos 'not exists'.

Aquella solución te dará todos los numempresa que tengan
*todos* los productos 4,5,6,7 y 8. Todos. Esas empresas podrán
tener mas productos, pero tendrán que al menos tener todos
esos {4,5,6,7,8}

Repito: Si una empresa tiene los productos 4, 5, 6, 7 y 8
entonces esa empresa no puede estar en vista_empresa1 ni
en vista_empresa2 por lo que es innecesario poner la condición
de que no puede estar en esas vistas.

Traducido a este ejemplo último con productos 1 y 2:
Queremos todas las empresas que:
1) no esten en vista_Empresa1: sí tienen producto 1 pero no 2.
2) no esten en vista_Empresa2: sí tienen producto 2 pero no 1.
3) tienen productos 1 y 2

La condición 3) es suficiente ya que si una empresa tiene
productos 1 y 2, esa empresa nunca podrá estar en vista_empresa1
ni en vista_empresa2.

La solución la tienes en mi primer post.

Saludos,
Carlos
Respuesta Responder a este mensaje
#15 Carlos M. Calvelo
12/02/2008 - 16:07 | Informe spam
On 12 feb, 15:59, "Jaime" wrote:
Gracia spor responder.
Se que podria estar claro, pero imaginate que una empresa tiene 1,2 3 como
producto.
Si pongo la condicion Producto=1 AND producto=2, dicho empresa no me sale
por tener el 3, pero me interesa que salga.



Saldrá!



Quizas he montado una que no debia, pero es que me estoy volviendo loco.



No has montado nada. Prueba mi primer consulta,
con los dos not exists y analiza los resultados.

Si quieres otra lista de productos, en vez del 4,5,6,7 y 8
cambias la subconsulta con UNIONes con tu nueva lista.
(la subconsulta con alias p1)

Saludos,
Carlos
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida