Ayuda con subconsulta

16/03/2006 - 16:48 por CHAR72 | Informe spam
Me enredo mucho con esta subconsulta y espero que uds. puedan ayudarme.

Tengo estos datos extridos de una consulta:

Numero (tabla1)
1560
1563

y en otra tabla tengo

Numero Fecha (tabla2)

1559 15/1
1561 15/1
1562 16/1
1564 16/1

quiero una consulta que muestre el numero y fecha del registro anterior al
de la tabla1, o sea:

Numero Numero_Ant Fecha:Ant
1560 1559 15/1
1563 1562 16/1

Espero vuestra ayuda, muchas gracias


CREATE TABLE TABLA1 (NUMERO int)
INSERT INTO TABLA1 (NUMERO) VALUES (1560)
INSERT INTO TABLA1 (NUMERO) VALUES (1563)

CREATE TABLE TABLA2 (NUMERO int,FECHA datetime)
INSERT INTO TABLA2 (NUMERO,FECHA) VALUES (1559,'15/1/06')
INSERT INTO TABLA2 (NUMERO,FECHA) VALUES (1561,'15/1/06')
INSERT INTO TABLA2 (NUMERO,FECHA) VALUES (1562,'16/1/06')
INSERT INTO TABLA2 (NUMERO,FECHA) VALUES (1564,'16/1/06')

SELECT * FROM TABLA1
SELECT * FROM TABLA2

Preguntas similare

Leer las respuestas

#1 Alejandro Mesa
16/03/2006 - 17:31 | Informe spam
Trata:

select t1.numero, t2.numero, t2.fecha
from t1 inner join t2
on t2.numero = t1.numero - 1
go


AMB

"CHAR72" wrote:

Me enredo mucho con esta subconsulta y espero que uds. puedan ayudarme.

Tengo estos datos extridos de una consulta:

Numero (tabla1)
1560
1563

y en otra tabla tengo

Numero Fecha (tabla2)

1559 15/1
1561 15/1
1562 16/1
1564 16/1

quiero una consulta que muestre el numero y fecha del registro anterior al
de la tabla1, o sea:

Numero Numero_Ant Fecha:Ant
1560 1559 15/1
1563 1562 16/1

Espero vuestra ayuda, muchas gracias


CREATE TABLE TABLA1 (NUMERO int)
INSERT INTO TABLA1 (NUMERO) VALUES (1560)
INSERT INTO TABLA1 (NUMERO) VALUES (1563)

CREATE TABLE TABLA2 (NUMERO int,FECHA datetime)
INSERT INTO TABLA2 (NUMERO,FECHA) VALUES (1559,'15/1/06')
INSERT INTO TABLA2 (NUMERO,FECHA) VALUES (1561,'15/1/06')
INSERT INTO TABLA2 (NUMERO,FECHA) VALUES (1562,'16/1/06')
INSERT INTO TABLA2 (NUMERO,FECHA) VALUES (1564,'16/1/06')

SELECT * FROM TABLA1
SELECT * FROM TABLA2




Respuesta Responder a este mensaje
#2 CHAR72
16/03/2006 - 18:29 | Informe spam
Muchas gracias Alejandro, pero funcionaria perfecto si todos son
correlativos como el ejemplo. Suponiendo que no sea correlativo, pense en la
funcion min preo como la pongo en el where?

Saludos

"Alejandro Mesa" escribió en el
mensaje news:
Trata:

select t1.numero, t2.numero, t2.fecha
from t1 inner join t2
on t2.numero = t1.numero - 1
go


AMB

"CHAR72" wrote:

Me enredo mucho con esta subconsulta y espero que uds. puedan ayudarme.

Tengo estos datos extridos de una consulta:

Numero (tabla1)
1560
1563

y en otra tabla tengo

Numero Fecha (tabla2)

1559 15/1
1561 15/1
1562 16/1
1564 16/1

quiero una consulta que muestre el numero y fecha del registro anterior
al
de la tabla1, o sea:

Numero Numero_Ant Fecha:Ant
1560 1559 15/1
1563 1562 16/1

Espero vuestra ayuda, muchas gracias


CREATE TABLE TABLA1 (NUMERO int)
INSERT INTO TABLA1 (NUMERO) VALUES (1560)
INSERT INTO TABLA1 (NUMERO) VALUES (1563)

CREATE TABLE TABLA2 (NUMERO int,FECHA datetime)
INSERT INTO TABLA2 (NUMERO,FECHA) VALUES (1559,'15/1/06')
INSERT INTO TABLA2 (NUMERO,FECHA) VALUES (1561,'15/1/06')
INSERT INTO TABLA2 (NUMERO,FECHA) VALUES (1562,'16/1/06')
INSERT INTO TABLA2 (NUMERO,FECHA) VALUES (1564,'16/1/06')

SELECT * FROM TABLA1
SELECT * FROM TABLA2




Respuesta Responder a este mensaje
#3 Alejandro Mesa
16/03/2006 - 18:40 | Informe spam
CHAR72,

A que te refieres cuando dices que no son correlativos?. Si cuando dices "el
anterior", te refieres al ultimo que le precede, entonces puedes usar:

select t1.numero, t2.numero, t2.fecha
from t1 inner join t2
on t2.numero = (select max(t3.numero) from t2 as t3 where t3.numero <
t1.numero)
go


AMB

"CHAR72" wrote:

Muchas gracias Alejandro, pero funcionaria perfecto si todos son
correlativos como el ejemplo. Suponiendo que no sea correlativo, pense en la
funcion min preo como la pongo en el where?

Saludos

"Alejandro Mesa" escribió en el
mensaje news:
> Trata:
>
> select t1.numero, t2.numero, t2.fecha
> from t1 inner join t2
> on t2.numero = t1.numero - 1
> go
>
>
> AMB
>
> "CHAR72" wrote:
>
>> Me enredo mucho con esta subconsulta y espero que uds. puedan ayudarme.
>>
>> Tengo estos datos extridos de una consulta:
>>
>> Numero (tabla1)
>> 1560
>> 1563
>>
>> y en otra tabla tengo
>>
>> Numero Fecha (tabla2)
>>
>> 1559 15/1
>> 1561 15/1
>> 1562 16/1
>> 1564 16/1
>>
>> quiero una consulta que muestre el numero y fecha del registro anterior
>> al
>> de la tabla1, o sea:
>>
>> Numero Numero_Ant Fecha:Ant
>> 1560 1559 15/1
>> 1563 1562 16/1
>>
>> Espero vuestra ayuda, muchas gracias
>>
>>
>> CREATE TABLE TABLA1 (NUMERO int)
>> INSERT INTO TABLA1 (NUMERO) VALUES (1560)
>> INSERT INTO TABLA1 (NUMERO) VALUES (1563)
>>
>> CREATE TABLE TABLA2 (NUMERO int,FECHA datetime)
>> INSERT INTO TABLA2 (NUMERO,FECHA) VALUES (1559,'15/1/06')
>> INSERT INTO TABLA2 (NUMERO,FECHA) VALUES (1561,'15/1/06')
>> INSERT INTO TABLA2 (NUMERO,FECHA) VALUES (1562,'16/1/06')
>> INSERT INTO TABLA2 (NUMERO,FECHA) VALUES (1564,'16/1/06')
>>
>> SELECT * FROM TABLA1
>> SELECT * FROM TABLA2
>>
>>
>>
>>



Respuesta Responder a este mensaje
#4 CHAR72
16/03/2006 - 19:41 | Informe spam
Perfecto !!!

La guardare como ejemplo porque se me hace un embroyo las subconsultas
anidadas

Muchas gracias Alejandro.

"Alejandro Mesa" escribió en el
mensaje news:
CHAR72,

A que te refieres cuando dices que no son correlativos?. Si cuando dices
"el
anterior", te refieres al ultimo que le precede, entonces puedes usar:

select t1.numero, t2.numero, t2.fecha
from t1 inner join t2
on t2.numero = (select max(t3.numero) from t2 as t3 where t3.numero <
t1.numero)
go


AMB

"CHAR72" wrote:

Muchas gracias Alejandro, pero funcionaria perfecto si todos son
correlativos como el ejemplo. Suponiendo que no sea correlativo, pense en
la
funcion min preo como la pongo en el where?

Saludos

"Alejandro Mesa" escribió en el
mensaje news:
> Trata:
>
> select t1.numero, t2.numero, t2.fecha
> from t1 inner join t2
> on t2.numero = t1.numero - 1
> go
>
>
> AMB
>
> "CHAR72" wrote:
>
>> Me enredo mucho con esta subconsulta y espero que uds. puedan
>> ayudarme.
>>
>> Tengo estos datos extridos de una consulta:
>>
>> Numero (tabla1)
>> 1560
>> 1563
>>
>> y en otra tabla tengo
>>
>> Numero Fecha (tabla2)
>>
>> 1559 15/1
>> 1561 15/1
>> 1562 16/1
>> 1564 16/1
>>
>> quiero una consulta que muestre el numero y fecha del registro
>> anterior
>> al
>> de la tabla1, o sea:
>>
>> Numero Numero_Ant Fecha:Ant
>> 1560 1559 15/1
>> 1563 1562 16/1
>>
>> Espero vuestra ayuda, muchas gracias
>>
>>
>> CREATE TABLE TABLA1 (NUMERO int)
>> INSERT INTO TABLA1 (NUMERO) VALUES (1560)
>> INSERT INTO TABLA1 (NUMERO) VALUES (1563)
>>
>> CREATE TABLE TABLA2 (NUMERO int,FECHA datetime)
>> INSERT INTO TABLA2 (NUMERO,FECHA) VALUES (1559,'15/1/06')
>> INSERT INTO TABLA2 (NUMERO,FECHA) VALUES (1561,'15/1/06')
>> INSERT INTO TABLA2 (NUMERO,FECHA) VALUES (1562,'16/1/06')
>> INSERT INTO TABLA2 (NUMERO,FECHA) VALUES (1564,'16/1/06')
>>
>> SELECT * FROM TABLA1
>> SELECT * FROM TABLA2
>>
>>
>>
>>



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