Consulta

03/03/2004 - 12:54 por Sirox | Informe spam
Hola a todos,

Tengo una tabla:

Codigo linea1 linea2 linea3 linea4 linea5
Icann 1 90 180 200 340
Icann 2 70 100 280 310
Icann 3 40 130 290 670
Icann 4 60 260 240 710
StrDu 8 50 340 550 210
StrDu 9 50 340 570 280
StrDu 10 50 340 590 410
BlnLi 80 50 340 550 210
BlnLi 85 60 260 240 710
BlnLi 86 50 340 550 210
BlnLi 87 50 340 570 280
BlnLi 90 60 260 240 710
BlnLi 91 50 340 550 210
DdnJu 1 50 340 570 280

Ando buscando la forma de seleccionar todas las últimas lineas de registros
cuyos códigos sean distintos, es decir, para este caso me debería
seleccionar:

Icann 4 60 260 240 710
StrDu 10 50 340 590 410
BlnLi 91 50 340 550 210
DdnJu 1 50 340 570 280


Espero haberme explicado, muchas gracias a todos.
Sirox

Preguntas similare

Leer las respuestas

#1 Javier Loria
03/03/2004 - 13:18 | Informe spam
Hola:
Asumiendo que la lineas deseadas son:
SELECT Codigo, MAX(Linea1)
FROM Tabla
El Select lo puedes construir, de la siguiente forma:
SELECT T.Codigo
, T.Linea1
, T.Linea2
, T.Linea3
, T.Linea4
, T.Linea5
FROM Tabla AS T
JOIN (SELECT Codigo, MAX(Linea1) AS Linea
FROM Tabla) AS T2
ON T.Codigo=T2.Codigo
AND T.Linea1=T2.Linea1
Espero se entienda,


Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.

Sirox escribio:
Hola a todos,

Tengo una tabla:

Codigo linea1 linea2 linea3 linea4 linea5
Icann 1 90 180 200 340
Icann 2 70 100 280 310
Icann 3 40 130 290 670
Icann 4 60 260 240 710
StrDu 8 50 340 550 210
StrDu 9 50 340 570 280
StrDu 10 50 340 590 410
BlnLi 80 50 340 550 210
BlnLi 85 60 260 240 710
BlnLi 86 50 340 550 210
BlnLi 87 50 340 570 280
BlnLi 90 60 260 240 710
BlnLi 91 50 340 550 210
DdnJu 1 50 340 570 280

Ando buscando la forma de seleccionar todas las últimas lineas de
registros cuyos códigos sean distintos, es decir, para este caso me
debería seleccionar:

Icann 4 60 260 240 710
StrDu 10 50 340 590 410
BlnLi 91 50 340 550 210
DdnJu 1 50 340 570 280


Espero haberme explicado, muchas gracias a todos.
Sirox
Respuesta Responder a este mensaje
#2 Sirox
04/03/2004 - 12:27 | Informe spam
Muchas gracias Javier!,

Ahora tengo otra duda similar pero con 2 tablas... expongo el caso:

TABLA1
-Codigo (varchar) (key)
-Descripcion (varchar)
-Manual (varchar)
-Automatico (varchar)

TABLA2
-Codigo (varchar)(key)
-num_linea (int)(key)
-inicio (int)
-fin (int)
-ultimo (int)
-fecha (datetime)
-incr (int)
-letra (varchar)

Intento hacer lo mismo (que muestre únicamente las lineas que contengan el
ultimo número de linea (MAX(num_linea)) con su codigo correspondiente y
todos los campos que le correspondan de la tabla1 y tabla2) pero mostrando
datos de las dos tablas, si uso un INNER JOIN no puedo usar alias...???

Con una tabla ya lo he conseguido pero al hacerlo con 2 a ver si salgo
del "bache" de una vez...


Gracias,
Sirox

"Javier Loria" escribió en el mensaje
news:
Hola:
Asumiendo que la lineas deseadas son:
> SELECT Codigo, MAX(Linea1)
FROM Tabla
> El Select lo puedes construir, de la siguiente forma:
> SELECT T.Codigo
, T.Linea1
, T.Linea2
, T.Linea3
, T.Linea4
, T.Linea5
FROM Tabla AS T
JOIN (SELECT Codigo, MAX(Linea1) AS Linea
FROM Tabla) AS T2
ON T.Codigo=T2.Codigo
AND T.Linea1=T2.Linea1
> Espero se entienda,


Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.

Sirox escribio:
> Hola a todos,
>
> Tengo una tabla:
>
> Codigo linea1 linea2 linea3 linea4 linea5
> Icann 1 90 180 200 340
> Icann 2 70 100 280 310
> Icann 3 40 130 290 670
> Icann 4 60 260 240 710
> StrDu 8 50 340 550 210
> StrDu 9 50 340 570 280
> StrDu 10 50 340 590 410
> BlnLi 80 50 340 550 210
> BlnLi 85 60 260 240 710
> BlnLi 86 50 340 550 210
> BlnLi 87 50 340 570 280
> BlnLi 90 60 260 240 710
> BlnLi 91 50 340 550 210
> DdnJu 1 50 340 570 280
>
> Ando buscando la forma de seleccionar todas las últimas lineas de
> registros cuyos códigos sean distintos, es decir, para este caso me
> debería seleccionar:
>
> Icann 4 60 260 240 710
> StrDu 10 50 340 590 410
> BlnLi 91 50 340 550 210
> DdnJu 1 50 340 570 280
>
>
> Espero haberme explicado, muchas gracias a todos.
> Sirox


Respuesta Responder a este mensaje
#3 Maximiliano D. A.
04/03/2004 - 13:34 | Informe spam
Hola no soy Javier ni mucho menos, pero no creo que te enojes no?

El alias lo podes usar igual, la idea general es usar el tipo de consulta
que te dio Javier, que es muy practica y resuelve tu problema.

Pero cuando haces el Join (Select Campos) ahi sin problemas podes usar todos
los alias como cualquier consulta, claro recorda luego el uso de los mismos
no.

Bye


Salu2
Maxi
Buenos Aires Argentina
Desarrollador Microsoft 3 Estrellas .NET
[Maxi_accotto[arroba]speedy[punto]com[punto]ar
MSN:


"Sirox" escribió en el mensaje
news:
Muchas gracias Javier!,

Ahora tengo otra duda similar pero con 2 tablas... expongo el caso:

TABLA1
-Codigo (varchar) (key)
-Descripcion (varchar)
-Manual (varchar)
-Automatico (varchar)

TABLA2
-Codigo (varchar)(key)
-num_linea (int)(key)
-inicio (int)
-fin (int)
-ultimo (int)
-fecha (datetime)
-incr (int)
-letra (varchar)

Intento hacer lo mismo (que muestre únicamente las lineas que contengan el
ultimo número de linea (MAX(num_linea)) con su codigo correspondiente y
todos los campos que le correspondan de la tabla1 y tabla2) pero mostrando
datos de las dos tablas, si uso un INNER JOIN no puedo usar alias...???

Con una tabla ya lo he conseguido pero al hacerlo con 2 a ver si


salgo
del "bache" de una vez...


Gracias,
Sirox

"Javier Loria" escribió en el mensaje
news:
> Hola:
> Asumiendo que la lineas deseadas son:
> > > SELECT Codigo, MAX(Linea1)
> FROM Tabla
> > > El Select lo puedes construir, de la siguiente forma:
> > > SELECT T.Codigo
> , T.Linea1
> , T.Linea2
> , T.Linea3
> , T.Linea4
> , T.Linea5
> FROM Tabla AS T
> JOIN (SELECT Codigo, MAX(Linea1) AS Linea
> FROM Tabla) AS T2
> ON T.Codigo=T2.Codigo
> AND T.Linea1=T2.Linea1
> > > Espero se entienda,
>
>
> Javier Loria
> Costa Rica
> Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
> que pueda ser copiado y pegado al Query Analizer.
> La version de SQL y Service Pack tambien ayuda.
>
> Sirox escribio:
> > Hola a todos,
> >
> > Tengo una tabla:
> >
> > Codigo linea1 linea2 linea3 linea4 linea5
> > Icann 1 90 180 200 340
> > Icann 2 70 100 280 310
> > Icann 3 40 130 290 670
> > Icann 4 60 260 240 710
> > StrDu 8 50 340 550 210
> > StrDu 9 50 340 570 280
> > StrDu 10 50 340 590 410
> > BlnLi 80 50 340 550 210
> > BlnLi 85 60 260 240 710
> > BlnLi 86 50 340 550 210
> > BlnLi 87 50 340 570 280
> > BlnLi 90 60 260 240 710
> > BlnLi 91 50 340 550 210
> > DdnJu 1 50 340 570 280
> >
> > Ando buscando la forma de seleccionar todas las últimas lineas de
> > registros cuyos códigos sean distintos, es decir, para este caso me
> > debería seleccionar:
> >
> > Icann 4 60 260 240 710
> > StrDu 10 50 340 590 410
> > BlnLi 91 50 340 550 210
> > DdnJu 1 50 340 570 280
> >
> >
> > Espero haberme explicado, muchas gracias a todos.
> > Sirox
>
>







Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.593 / Virus Database: 376 - Release Date: 22/02/2004
Respuesta Responder a este mensaje
#4 Liliana Sorrentino
04/03/2004 - 14:27 | Informe spam
SELECT T1.Codigo , T1.Descripcion, T2deriv.Linea, T1.Manual, T1.Automatico,
T2.Letra
FROM Tabla1 AS T1
INNER JOIN Tabla2 AS T2 ON T1.Codigo = T2.Codigo
INNER JOIN (SELECT Codigo, MAX(Num_Linea) AS Linea FROM Tabla2 GROUP BY
Codigo) AS T2deriv
ON T2.Codigo=T2deriv.Codigo AND T2.Num_Linea = T2deriv.Linea

Saludos... Liliana.

"Sirox" escribió en el mensaje
news:
Muchas gracias Javier!,

Ahora tengo otra duda similar pero con 2 tablas... expongo el caso:

TABLA1
-Codigo (varchar) (key)
-Descripcion (varchar)
-Manual (varchar)
-Automatico (varchar)

TABLA2
-Codigo (varchar)(key)
-num_linea (int)(key)
-inicio (int)
-fin (int)
-ultimo (int)
-fecha (datetime)
-incr (int)
-letra (varchar)

Intento hacer lo mismo (que muestre únicamente las lineas que contengan el
ultimo número de linea (MAX(num_linea)) con su codigo correspondiente y
todos los campos que le correspondan de la tabla1 y tabla2) pero mostrando
datos de las dos tablas, si uso un INNER JOIN no puedo usar alias...???

Con una tabla ya lo he conseguido pero al hacerlo con 2 a ver si


salgo
del "bache" de una vez...


Gracias,
Sirox

"Javier Loria" escribió en el mensaje
news:
> Hola:
> Asumiendo que la lineas deseadas son:
> > > SELECT Codigo, MAX(Linea1)
> FROM Tabla
> > > El Select lo puedes construir, de la siguiente forma:
> > > SELECT T.Codigo
> , T.Linea1
> , T.Linea2
> , T.Linea3
> , T.Linea4
> , T.Linea5
> FROM Tabla AS T
> JOIN (SELECT Codigo, MAX(Linea1) AS Linea
> FROM Tabla) AS T2
> ON T.Codigo=T2.Codigo
> AND T.Linea1=T2.Linea1
> > > Espero se entienda,
>
>
> Javier Loria
> Costa Rica
> Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
> que pueda ser copiado y pegado al Query Analizer.
> La version de SQL y Service Pack tambien ayuda.
>
> Sirox escribio:
> > Hola a todos,
> >
> > Tengo una tabla:
> >
> > Codigo linea1 linea2 linea3 linea4 linea5
> > Icann 1 90 180 200 340
> > Icann 2 70 100 280 310
> > Icann 3 40 130 290 670
> > Icann 4 60 260 240 710
> > StrDu 8 50 340 550 210
> > StrDu 9 50 340 570 280
> > StrDu 10 50 340 590 410
> > BlnLi 80 50 340 550 210
> > BlnLi 85 60 260 240 710
> > BlnLi 86 50 340 550 210
> > BlnLi 87 50 340 570 280
> > BlnLi 90 60 260 240 710
> > BlnLi 91 50 340 550 210
> > DdnJu 1 50 340 570 280
> >
> > Ando buscando la forma de seleccionar todas las últimas lineas de
> > registros cuyos códigos sean distintos, es decir, para este caso me
> > debería seleccionar:
> >
> > Icann 4 60 260 240 710
> > StrDu 10 50 340 590 410
> > BlnLi 91 50 340 550 210
> > DdnJu 1 50 340 570 280
> >
> >
> > Espero haberme explicado, muchas gracias a todos.
> > Sirox
>
>


Respuesta Responder a este mensaje
#5 Javier Loria
04/03/2004 - 15:42 | Informe spam
Hola:
Si no estaba muerta, andaba de PARRANDA.

Saludos ,


Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.
Liliana Sorrentino escribio:
SELECT T1.Codigo , T1.Descripcion, T2deriv.Linea, T1.Manual,
T1.Automatico, T2.Letra
FROM Tabla1 AS T1
INNER JOIN Tabla2 AS T2 ON T1.Codigo = T2.Codigo
INNER JOIN (SELECT Codigo, MAX(Num_Linea) AS Linea FROM Tabla2 GROUP
BY Codigo) AS T2deriv
ON T2.Codigo=T2deriv.Codigo AND T2.Num_Linea = T2deriv.Linea

Saludos... Liliana.

"Sirox" escribió en el mensaje
news:
Muchas gracias Javier!,

Ahora tengo otra duda similar pero con 2 tablas... expongo el caso:

TABLA1
-Codigo (varchar) (key)
-Descripcion (varchar)
-Manual (varchar)
-Automatico (varchar)

TABLA2
-Codigo (varchar)(key)
-num_linea (int)(key)
-inicio (int)
-fin (int)
-ultimo (int)
-fecha (datetime)
-incr (int)
-letra (varchar)

Intento hacer lo mismo (que muestre únicamente las lineas que
contengan el ultimo número de linea (MAX(num_linea)) con su codigo
correspondiente y todos los campos que le correspondan de la tabla1
y tabla2) pero mostrando datos de las dos tablas, si uso un INNER
JOIN no puedo usar alias...???

Con una tabla ya lo he conseguido pero al hacerlo con 2 a ver
si salgo del "bache" de una vez...


Gracias,
Sirox

"Javier Loria" escribió en el mensaje
news:
Hola:
Asumiendo que la lineas deseadas son:
>>> SELECT Codigo, MAX(Linea1)
FROM Tabla
>>> El Select lo puedes construir, de la siguiente forma:
>>> SELECT T.Codigo
, T.Linea1
, T.Linea2
, T.Linea3
, T.Linea4
, T.Linea5
FROM Tabla AS T
JOIN (SELECT Codigo, MAX(Linea1) AS Linea
FROM Tabla) AS T2
ON T.Codigo=T2.Codigo
AND T.Linea1=T2.Linea1
>>> Espero se entienda,


Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.

Sirox escribio:
Hola a todos,

Tengo una tabla:

Codigo linea1 linea2 linea3 linea4 linea5
Icann 1 90 180 200 340
Icann 2 70 100 280 310
Icann 3 40 130 290 670
Icann 4 60 260 240 710
StrDu 8 50 340 550 210
StrDu 9 50 340 570 280
StrDu 10 50 340 590 410
BlnLi 80 50 340 550 210
BlnLi 85 60 260 240 710
BlnLi 86 50 340 550 210
BlnLi 87 50 340 570 280
BlnLi 90 60 260 240 710
BlnLi 91 50 340 550 210
DdnJu 1 50 340 570 280

Ando buscando la forma de seleccionar todas las últimas lineas de
registros cuyos códigos sean distintos, es decir, para este caso me
debería seleccionar:

Icann 4 60 260 240 710
StrDu 10 50 340 590 410
BlnLi 91 50 340 550 210
DdnJu 1 50 340 570 280


Espero haberme explicado, muchas gracias a todos.
Sirox
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida