Consulta SQL

10/09/2007 - 14:54 por Ricardo L. Calvo | Informe spam
Buen dia estimado grupo :

Tengo una consulta Select con on order by codigo de manera que me quedan
entre 1 y 10 filas aprox con el mismo codigo, algo asi :

130..
152...
152...
160..
160..
160..
175..
175..
175..
175..
180..
como haria para quedarme solo con dos filas de un mismo codigo?, cdo hay mas
de dos. O sea que me quede asi :
130..
152..
152..
160..
160..
175..
175..
180..

Muchas gracias desde ya

Preguntas similare

Leer las respuestas

#6 Carlos M. Calvelo
12/09/2007 - 14:51 | Informe spam
Hola Ricardo,


On 12 sep, 14:06, "Ricardo L. Calvo" <calvo66 'sacar' @yahoo.com.ar>
wrote:
Pero Distinct me deja solo un código y yo necesito dos de cada uno (como
mostré en el ejemplo) ! ya que debo promediar dos campos que acompañan los
codigos.




Y por que no 'promedias' en dos columnas distintas?

Pero si insistes aquí tienes otra forma de hacerlo:

Tiene esa tabla una clave primaria?
Si es así, digamos que es PK):

select t1.codigo
from t1 inner join t2 on t1.codigo = t2.codigo and t1.PK <= t2.PK
group by t1.codigo, t1.PK
having count(*) <= 2
order by t1.codigo

Saludos,
Carlos
Respuesta Responder a este mensaje
#7 Carlos M. Calvelo
12/09/2007 - 15:34 | Informe spam
Corrección:

... from t1 inner join t2 on



naturalmente tiene que ser:

... from tuTabla t1 inner join tuTabla t2 on ...

Saludos,
Carlos
Respuesta Responder a este mensaje
#8 Ricardo L. Calvo
12/09/2007 - 16:39 | Informe spam
Carlos,
La clave primaria es el mismo codigo, que puede repetirse ya que es una
tabla hija . Como soy novato en SQL no se como aplicar tu ejemplo que se ve
muy limpio y compacto a mi problema. O sea , para mi t1.codigo y t1.PK es lo
mismo.

Disculpas desde ya y agradezco la ayuda y paciencia :)


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


On 12 sep, 14:06, "Ricardo L. Calvo" <calvo66 'sacar' @yahoo.com.ar>
wrote:
Pero Distinct me deja solo un código y yo necesito dos de cada uno (como
mostré en el ejemplo) ! ya que debo promediar dos campos que acompañan los
codigos.




Y por que no 'promedias' en dos columnas distintas?

Pero si insistes aquí tienes otra forma de hacerlo:

Tiene esa tabla una clave primaria?
Si es así, digamos que es PK):

select t1.codigo
from t1 inner join t2 on t1.codigo = t2.codigo and t1.PK <= t2.PK
group by t1.codigo, t1.PK
having count(*) <= 2
order by t1.codigo

Saludos,
Carlos
Respuesta Responder a este mensaje
#9 Carlos M. Calvelo
12/09/2007 - 17:53 | Informe spam
Hola Ricardo,

On 12 sep, 16:39, "Ricardo L. Calvo" <calvo66 'sacar' @yahoo.com.ar>
wrote:
Carlos,
La clave primaria es el mismo codigo, que puede repetirse ya que es una
tabla hija .



Si 'codigo' puede repetirse en la tabla no es una clave.
Tendrás otra(s) columna(s) que combinada(s) con el código
identifican las lineas de la tabla, digo yo!?
Sin identificación de las lineas puedes esperar estos
problemas, y más.


Pero me pareció mas interesante lo que habías dicho
de promediar dos campos. No será por casualidad esto:

select codigo, avg(campo1), avg(campo2)
from tabla
group by codigo

o algo por el estilo, lo que quieres???

Espero tu reacción a esto antes de seguir divagando.

Como soy novato en SQL no se como aplicar tu ejemplo que se ve
muy limpio y compacto a mi problema. O sea , para mi t1.codigo y t1.PK es lo
mismo.

Disculpas desde ya y agradezco la ayuda y paciencia :)



Disculpas por qué? :)

Saludos,
Carlos
Respuesta Responder a este mensaje
#10 Ricardo L. Calvo
12/09/2007 - 20:09 | Informe spam
Carlos , gracias por seguir con mi problema , la cosa es asi :

Tengo una tabla con codigo de articulo (Codigo) fecha de pedido (Fecha_ped)
y fecha de llegada a planta (Fecha_rec) , esta tabla puede tener varias
filas por articulo segun las veces que se haya pedido ese articulo, entonces
podria tener:

Art fec_ped fec_rec dif_dias

1 01/01/07 15/01/07 14
1 20/01/07 30/01/07 10
1 10/02/07 20/02/07 10
3 01/01/07 15/01/07 14
4 05/01/07 10/01/07 5
4 20/01/07 30/01/07 10

Lo que necesito es : de los dos ultimos pedidos de cada articulo, promediar
los dias de tardanza entre fecha pedido y fecha llegada :
Para el ejemplo :

para el codigo 1, debo promediar 10 con 10 ,
para el codigo 3, solo me quedo con el 14,
para el codigo 4, debo promediar 5 con 10

y asi ..

Esto es para preveer, para futuras compras, el tiempo que demora el articulo
entre que se pide y llega a planta.




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

On 12 sep, 16:39, "Ricardo L. Calvo" <calvo66 'sacar' @yahoo.com.ar>
wrote:
Carlos,
La clave primaria es el mismo codigo, que puede repetirse ya que es
una
tabla hija .



Si 'codigo' puede repetirse en la tabla no es una clave.
Tendrás otra(s) columna(s) que combinada(s) con el código
identifican las lineas de la tabla, digo yo!?
Sin identificación de las lineas puedes esperar estos
problemas, y más.


Pero me pareció mas interesante lo que habías dicho
de promediar dos campos. No será por casualidad esto:

select codigo, avg(campo1), avg(campo2)
from tabla
group by codigo

o algo por el estilo, lo que quieres???

Espero tu reacción a esto antes de seguir divagando.

Como soy novato en SQL no se como aplicar tu ejemplo que se ve
muy limpio y compacto a mi problema. O sea , para mi t1.codigo y t1.PK es
lo
mismo.

Disculpas desde ya y agradezco la ayuda y paciencia :)



Disculpas por qué? :)

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