Select top

26/08/2004 - 22:45 por Julio | Informe spam
Hola grupo

Tengo la siguiente tabla

Tabla A1


ClienteID fecha prueba

1 01/01/04 0.50
1 01/02/04 0.25
1 01/03/04 0.71
2 01/01/04 0.3
2 01/02/04 0.9
2 01/03/04 0.6

Como puedo hacer una vista que me devuelva las ultimas dos fechas por
clientes

Preguntas similare

Leer las respuestas

#16 Liliana Sorrentino
27/08/2004 - 17:44 | Informe spam
Hola Javier,
Espero ansiosamente tu colaboración para el problema de Julio, sinceramente
no le encontré la vuelta, lo que planteó en este hilo es solo el comienzo...
viene por más!
Saludos... Liliana.

"Javier Loria" escribió en el mensaje
news:
Hola Liliana:
Exacto!!!
Mil Disculpas,

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" wrote in message
news:
> Julio,
> solo cambiá
> ON T1.Fecha<=T2.Fecha
> por
> ON t1.clienteid = t2.clienteid and T1.Fecha<=T2.Fecha
>
> Liliana.
>
> "Julio" escribió en el mensaje
> news:
> > Tengo varios filas insertada por cliente y cuando lo corro solo me
> devuelve
> > el cliente que tien la fecha mas grande
> >
> >
> >
> > "Maxi" wrote in message
> > news:
> > > Hola, revisalo bien el ejemplo que te mando Javier, pero te lo hace
para
> > > todos los clientes y no solo para uno, porque dices eso?
> > >
> > >
> > > Salu2
> > > Maxi
> > > Buenos Aires - Argentina
> > > Desarrollador Microsoft 3 Estrellas .NET
> > > Nunca consideres el estudio como una obligación sino como
> > > una oportunidad para penetrar en el bello y maravillosos
> > > mundo del saber.
> > > - Albert Einstein
> > >
> > >
> > >
> > > "Julio" escribió en el mensaje
> > > news:%
> > > > Hola Javier en tu ejemplo solo me esta agrupando un solo cliente y
es
> el
> > > que
> > > > tiene la fecha mas alta, es decir yo necesito que lo haga por
cliente
> > > >
> > > >
> > > >
> > > >
> > > > "Javier Loria" wrote in message
> > > > news:%
> > > > > Hola Julio:
> > > > > En tu ejemplo no se repite ninguna fecha para un cliente, o
sea
> > que
> > > > > ClienteID/Fecha es unica y no nula (candidata). Si es asi:
> > > > > ==> > > > > > SELECT T1.ClienteID
> > > > > , T1Fecha
> > > > > , T1.Prueba
> > > > > FROM Tabla AS T1
> > > > > JOIN Tabla AS T2
> > > > > ON T1.Fecha<=T2.Fecha
> > > > > GROUP BY T1.ClienteID
> > > > > , T1.Fecha
> > > > > , T1.Prueba
> > > > > HAVING COUNT(*)<=3
> > > > > => > > > > > Espero te sirva,
> > > > >
> > > > > 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
> > > > >
> > > > > "Julio" wrote in message
> > > > > news:
> > > > > > Hola MAx, lo que necesito es que si un cliente tiene varios
filas
> > > > > insertada
> > > > > > me devuelva las ultimas N filas que yo necesite agrupados por
> > > clientes,
> > > > es
> > > > > > decir si el
> > > > > > cliente 1 tiene cinco filas insertada y yo necesito las


ultimas
> tres
> > > > filas
> > > > > > que me la devuelva el select tanto para el cliente 1 como para
> > todos.
> > > > > >
> > > > > >
> > > > > >
> > > > > > esto es un ejemplo de lo que tiene la tabla
> > > > > >
> > > > > > Clienteid fecha prueba
> > > > > > 1 01/01/04 5
> > > > > > 1 01/02/04 4
> > > > > > 1 01/03/04 9
> > > > > > 1 01/04/04 8
> > > > > > 1 01/05/04 11
> > > > > > 2 01/01/04 15
> > > > > > 2 01/02/04 7
> > > > > > 2 01/03/04 3
> > > > > > 2 01/04/04 1
> > > > > > 2 01/5/04 6
> > > > > >
> > > > > >
> > > > > > Yo quiero hacer un select que me devuelva los ultimas tre


filas
> que
> > se
> > > > > > insertaron
> > > > > >
> > > > > > el select me quedaria asi:
> > > > > >
> > > > > > Clienteid fecha prueba
> > > > > > 1 01/03/04 9
> > > > > > 1 01/04/04 8
> > > > > > 1 01/05/04 11
> > > > > > 2 01/03/04 3
> > > > > > 2 01/04/04 1
> > > > > > 2 01/05/04 6
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > > "MAXI" wrote in message
> > > > > > news:%
> > > > > > > Hola, si solo te importan las fechas y suponiendo que si hay
> > empates
> > > > > vale
> > > > > > la
> > > > > > > ultima, podrias aplicar algo asi como:
> > > > > > >
> > > > > > > CREATE TABLE #PEPE (ID INT, FECHA DATETIME)
> > > > > > >
> > > > > > > INSERT INTO #PEPE VALUES (1,GETDATE())
> > > > > > > INSERT INTO #PEPE VALUES (1,GETDATE()+1)
> > > > > > > INSERT INTO #PEPE VALUES (1,GETDATE()+2)
> > > > > > > INSERT INTO #PEPE VALUES (2,GETDATE())
> > > > > > >
> > > > > > >
> > > > > > > SELECT PEP1.ID, PEP1.FECHA AS ULTIMA, (SELECT MAX(FECHA)


FROM
> > #PEPE
> > > > PEP2
> > > > > > > WHERE
> > > > > > > PEP2.FECHA < PEP1.FECHA AND PEP1.ID = PEP2.ID) AS ANTEULTIMA
> > > > > > >
> > > > > > > FROM (select id,max(fecha) as fecha from #PEPE group by id)
> > > > > > > PEP1
> > > > > > >
> > > > > > >
> > > > > > > >
> > > > > > > Suerte
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > Maxi
> > > > > > >
> > > > > > > Buenos Aires - Argentina
> > > > > > > Desarrollador .NET 3 Estrellas
> > > > > > > Microsoft User Group (MUG)
> > > > > > > Mail: Maxi_accotto[arroba]speedy.com.ar
> > > > > > > Msn Messager:
> > > > > > >
> > > > > > > "Julio" escribió en el mensaje
> > > > > > > news:
> > > > > > > > Hola grupo
> > > > > > > >
> > > > > > > > Tengo la siguiente tabla
> > > > > > > >
> > > > > > > > Tabla A1
> > > > > > > >
> > > > > > > >
> > > > > > > > ClienteID fecha prueba
> > > > > > > >
> > > > > > > > 1 01/01/04 0.50
> > > > > > > > 1 01/02/04 0.25
> > > > > > > > 1 01/03/04 0.71
> > > > > > > > 2 01/01/04 0.3
> > > > > > > > 2 01/02/04 0.9
> > > > > > > > 2 01/03/04 0.6
> > > > > > > >
> > > > > > > > Como puedo hacer una vista que me devuelva las ultimas dos
> > fechas
> > > > por
> > > > > > > > clientes
> > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > > >
> > > > > >
> > > > > >
> > > > >
> > > > >
> > > >
> > > >
> > >
> > >
> > >
> > > Outgoing mail is certified Virus Free.
> > > Checked by AVG anti-virus system (http://www.grisoft.com).
> > > Version: 6.0.740 / Virus Database: 494 - Release Date: 16/08/2004
> > >
> > >
> >
> >
>
>


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