SQL 2000: Sentencia IN

09/04/2007 - 23:28 por Juan Carlos Mendoza | Informe spam
Me trabe en algo de repente sencillisimo. Tengo lo siguiente:

SELECT codigo1, codigo2, descripcion
FROM tabla1
WHERE codigo1
IN (SELECT codigo1 FROM tabla2)

pero si quiero validar que los dos codigos esten en el IN, como hago?
la idea es algo asi, solo que la sintaxis en incorrecta.

SELECT codigo1, codigo2, descripcion
FROM tabla1
WHERE (codigo1 and codigo2)
IN (SELECT codigo1, codigo2 FROM tabla2)

Gracias.

Juan Carlos Mendoza

Preguntas similare

Leer las respuestas

#1 Isaias
09/04/2007 - 23:54 | Informe spam
SELECT codigo1, codigo2, descripcion
FROM tabla1
WHERE (codigo1) in (SELECT codigo1 FROM tabla2)
AND (codigo2) in (SELECT codigo2 FROM tabla2)


Saludos
IIslas


"Juan Carlos Mendoza" wrote:

Me trabe en algo de repente sencillisimo. Tengo lo siguiente:

SELECT codigo1, codigo2, descripcion
FROM tabla1
WHERE codigo1
IN (SELECT codigo1 FROM tabla2)

pero si quiero validar que los dos codigos esten en el IN, como hago?
la idea es algo asi, solo que la sintaxis en incorrecta.

SELECT codigo1, codigo2, descripcion
FROM tabla1
WHERE (codigo1 and codigo2)
IN (SELECT codigo1, codigo2 FROM tabla2)

Gracias.

Juan Carlos Mendoza


Respuesta Responder a este mensaje
#2 Juan Carlos Mendoza
10/04/2007 - 02:08 | Informe spam
On 9 abr, 16:54, Isaias wrote:
SELECT codigo1, codigo2, descripcion
FROM tabla1
WHERE (codigo1) in (SELECT codigo1 FROM tabla2)
AND (codigo2) in (SELECT codigo2 FROM tabla2)

Saludos
IIslas



"Juan Carlos Mendoza" wrote:
> Me trabe en algo de repente sencillisimo. Tengo lo siguiente:

> SELECT codigo1, codigo2, descripcion
> FROM tabla1
> WHERE codigo1
> IN (SELECT codigo1 FROM tabla2)

> pero si quiero validar que los dos codigos esten en el IN, como hago?
> la idea es algo asi, solo que la sintaxis en incorrecta.

> SELECT codigo1, codigo2, descripcion
> FROM tabla1
> WHERE (codigo1 and codigo2)
> IN (SELECT codigo1, codigo2 FROM tabla2)

> Gracias.

> Juan Carlos Mendoza- Ocultar texto de la cita -

- Mostrar texto de la cita -



Es la unica forma? pense que se podria evitar hacer dos INs,
considerando que el SELECT es de la misma tabla solo que por otro
campo distinto.
Respuesta Responder a este mensaje
#3 Juan Carlos Mendoza
10/04/2007 - 02:15 | Informe spam
On 9 abr, 16:54, Isaias wrote:
SELECT codigo1, codigo2, descripcion
FROM tabla1
WHERE (codigo1) in (SELECT codigo1 FROM tabla2)
AND (codigo2) in (SELECT codigo2 FROM tabla2)

Saludos
IIslas



"Juan Carlos Mendoza" wrote:
> Me trabe en algo de repente sencillisimo. Tengo lo siguiente:

> SELECT codigo1, codigo2, descripcion
> FROM tabla1
> WHERE codigo1
> IN (SELECT codigo1 FROM tabla2)

> pero si quiero validar que los dos codigos esten en el IN, como hago?
> la idea es algo asi, solo que la sintaxis en incorrecta.

> SELECT codigo1, codigo2, descripcion
> FROM tabla1
> WHERE (codigo1 and codigo2)
> IN (SELECT codigo1, codigo2 FROM tabla2)

> Gracias.

> Juan Carlos Mendoza- Ocultar texto de la cita -

- Mostrar texto de la cita -



Esto me funciono:

SELECT codigo1, codigo2, descripcion
FROM tabla1
WHERE (codigo1+codigo2) in (SELECT (codigo1+codigo2) FROM tabla2)

un solo acceso a tabla2

Saludos,

Juan carlos Mendoza
Callao - Peru
Respuesta Responder a este mensaje
#4 DNC
10/04/2007 - 02:20 | Informe spam
revisa lo siguiente

use tests
go

create table tabla1
(codigo1 int
, codigo2 int
,descripcion varchar(30))
go

INSERT INTO [tabla1] VALUES(1,11,'uno')
INSERT INTO [tabla1] VALUES(2,12,'dos')
INSERT INTO [tabla1] VALUES(3,13,'tres')
INSERT INTO [tabla1] VALUES(4,14,'cuatro')
go

create table tabla2
(codigo1 int
, codigo2 int)
go

insert into [tabla2] values(1,111)
insert into [tabla2] values(1,12)
insert into [tabla2] values(2,13)
insert into [tabla2] values(4,114)
insert into [tabla2] values(3,13) -- esta es la unica
go

SELECT codigo1, codigo2, descripcion
FROM tabla1
WHERE (codigo1) in (SELECT codigo1 FROM tabla2)
AND (codigo2) in (SELECT codigo2 FROM tabla2)
go

select a.codigo1, a.codigo2, a.descripcion
from tabla1 a
inner join tabla2 b
on a.codigo1 = b.codigo1 and a.codigo2 = b.codigo2
go

select a.codigo1, a.codigo2, a.descripcion
from tabla1 a
where exists(select b.codigo1, b.codigo2 from tabla2 b
where a.codigo1 = b.codigo1 and a.codigo2 = b.codigo2)
go



On 9 abr, 21:15, "Juan Carlos Mendoza" wrote:
On 9 abr, 16:54, Isaias wrote:





> SELECT codigo1, codigo2, descripcion
> FROM tabla1
> WHERE (codigo1) in (SELECT codigo1 FROM tabla2)
> AND (codigo2) in (SELECT codigo2 FROM tabla2)

> Saludos
> IIslas

> "Juan Carlos Mendoza" wrote:
> > Me trabe en algo de repente sencillisimo. Tengo lo siguiente:

> > SELECT codigo1, codigo2, descripcion
> > FROM tabla1
> > WHERE codigo1
> > IN (SELECT codigo1 FROM tabla2)

> > pero si quiero validar que los dos codigos esten en el IN, como hago?
> > la idea es algo asi, solo que la sintaxis en incorrecta.

> > SELECT codigo1, codigo2, descripcion
> > FROM tabla1
> > WHERE (codigo1 and codigo2)
> > IN (SELECT codigo1, codigo2 FROM tabla2)

> > Gracias.

> > Juan Carlos Mendoza- Ocultar texto de la cita -

> - Mostrar texto de la cita -

Esto me funciono:

SELECT codigo1, codigo2, descripcion
FROM tabla1
WHERE (codigo1+codigo2) in (SELECT (codigo1+codigo2) FROM tabla2)

un solo acceso a tabla2

Saludos,

Juan carlos Mendoza
Callao - Peru- Ocultar texto de la cita -

- Mostrar texto de la cita -
Respuesta Responder a este mensaje
#5 Juan Carlos Mendoza
10/04/2007 - 02:25 | Informe spam
On 9 abr, 19:20, "DNC" wrote:
revisa lo siguiente

use tests
go

create table tabla1
(codigo1 int
, codigo2 int
,descripcion varchar(30))
go

INSERT INTO [tabla1] VALUES(1,11,'uno')
INSERT INTO [tabla1] VALUES(2,12,'dos')
INSERT INTO [tabla1] VALUES(3,13,'tres')
INSERT INTO [tabla1] VALUES(4,14,'cuatro')
go

create table tabla2
(codigo1 int
, codigo2 int)
go

insert into [tabla2] values(1,111)
insert into [tabla2] values(1,12)
insert into [tabla2] values(2,13)
insert into [tabla2] values(4,114)
insert into [tabla2] values(3,13) -- esta es la unica
go

SELECT codigo1, codigo2, descripcion
FROM tabla1
WHERE (codigo1) in (SELECT codigo1 FROM tabla2)
AND (codigo2) in (SELECT codigo2 FROM tabla2)
go

select a.codigo1, a.codigo2, a.descripcion
from tabla1 a
inner join tabla2 b
on a.codigo1 = b.codigo1 and a.codigo2 = b.codigo2
go

select a.codigo1, a.codigo2, a.descripcion
from tabla1 a
where exists(select b.codigo1, b.codigo2 from tabla2 b
where a.codigo1 = b.codigo1 and a.codigo2 = b.codigo2)
go

On 9 abr, 21:15, "Juan Carlos Mendoza" wrote:



> On 9 abr, 16:54, Isaias wrote:

> > SELECT codigo1, codigo2, descripcion
> > FROM tabla1
> > WHERE (codigo1) in (SELECT codigo1 FROM tabla2)
> > AND (codigo2) in (SELECT codigo2 FROM tabla2)

> > Saludos
> > IIslas

> > "Juan Carlos Mendoza" wrote:
> > > Me trabe en algo de repente sencillisimo. Tengo lo siguiente:

> > > SELECT codigo1, codigo2, descripcion
> > > FROM tabla1
> > > WHERE codigo1
> > > IN (SELECT codigo1 FROM tabla2)

> > > pero si quiero validar que los dos codigos esten en el IN, como hago?
> > > la idea es algo asi, solo que la sintaxis en incorrecta.

> > > SELECT codigo1, codigo2, descripcion
> > > FROM tabla1
> > > WHERE (codigo1 and codigo2)
> > > IN (SELECT codigo1, codigo2 FROM tabla2)

> > > Gracias.

> > > Juan Carlos Mendoza- Ocultar texto de la cita -

> > - Mostrar texto de la cita -

> Esto me funciono:

> SELECT codigo1, codigo2, descripcion
> FROM tabla1
> WHERE (codigo1+codigo2) in (SELECT (codigo1+codigo2) FROM tabla2)

> un solo acceso a tabla2

> Saludos,

> Juan carlos Mendoza
> Callao - Peru- Ocultar texto de la cita -

> - Mostrar texto de la cita -- Ocultar texto de la cita -

- Mostrar texto de la cita -



Muy interesante la respuesta y descarta la primera respuesta
propuesta. Muchisimas gracias.
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida