¿ Qué criterio -campo- hay que utilizar para establecer el órden que permita
seleccionar cuales son los tres últimos registros de la tabla avance_tareas
para cada tarea ?
Adios, un saludo.
Ramon Poch, raipon. Mi blog : www.sqlraipon.blogspot.com
select * from (SELECT tbltareas.Id, tbltareas.strTarea, tbltareas.strAvance
FROM tbltareas
WHERE tbltareas.[Id]=DLast("Id","tblTareas","strtarea='" & [strtarea] & "'")
union
SELECT tbltareas.Id, tbltareas.strTarea, tbltareas.strAvance
FROM tbltareas
WHERE tbltareas.[Id]=DLast("Id","tblTareas","strtarea='" & [strtarea] & "'
and Id <" & dlast( "Id","tblTareas","strtarea='" & [strtarea] & "'" ) )
union
SELECT tbltareas.Id, tbltareas.strTarea, tbltareas.strAvance
FROM tbltareas
WHERE tbltareas.[Id]=DLast("Id","tblTareas","strtarea='" & [strtarea] & "'
and Id <" & dlast( "Id","tblTareas","strtarea='" & [strtarea] & "' and Id
<" & dlast( "Id","tblTareas","strtarea='" & [strtarea] & "'" )))) as
TresTareas
order by strTarea
--
--
**
Salu2/Regards
Ju@nK [MVP Access] 2006/08
[DCE2003 ***] + VSTO [DCE2005 **]
http://juank.mvps.org http://www.juank.es
Correos personales o preguntas particulares en mi grupo
http://groups.google.es/group/juank?hl=es
www.juank.tk
¿Que es un MVP?, entérate en http://mvp.support.microsoft.com
**
"raipon" <raimo...@hotmail.com> escribió en el mensaje
news:eaHTwJkK...@TK2MSFTNGP04.phx.gbl...
desde ya gracias
"raipon" escribió:
tabla tareas tabla avance_tareas
id id
titulo fecha_avance
ambito descripcion
prioridad
entonces necesito
tareas.titulo, tareas.ambito, tareas.prioridad, avance_tareas.fecha_avance,
avance_tareas.descripcion.
pero solo las tres ultimas fecha_avance por cada tarea... espero explicarme..
saludos
...
WHERE avance_tareas.[fecha_avance] =
DLast("fecha_avance","avance_tareas","Id=" & [avance_tareas].Id )
Así tendrás el último, para obtener los dos anteriores simplemente aumentas
las condiciones con
...
" and avance_tareas.[fecha_avance] < " &
DLast("fecha_avance","avance_tareas","Id=" & [avance_tareas].Id )
uniendo las dos consultas
y para el tercero
...
" and avance_tareas.[fecha_avance] < " &
DLast("fecha_avance","avance_tareas","Id=" & [avance_tareas].Id & " and
avance_tareas.[fecha_avance] < " &
DLast("fecha_avance","avance_tareas","Id=" & [avance_tareas].Id )))
uniendo la consulta a la anterior
--
--
**
Salu2/Regards
Ju@nK [MVP Access] 2006/08
[DCE2003 ***] + VSTO [DCE2005 **]
http://juank.mvps.org http://www.juank.es
Correos personales o preguntas particulares en mi grupo
http://groups.google.es/group/juank?hl=es
www.juank.tk
¿Que es un MVP?, entérate en http://mvp.support.microsoft.com
**
"christianmesa" <christ...@discussions.microsoft.com> escribió en el
mensaje news:BF200C34-297D-4A5F...@microsoft.com...
WHERE avance_tareas.[fecha_avance] =
> DLast("fecha_avance","avance_tareas","Id=" & [avance_tareas].Id )
[avance_tareas].Id creo que eso no me lo toma...
saludos
"Ju@nK [MVP 2006/8]" escribió:
> Create una consulta de selección con los datos que necesitas y en where
> pones
>
> ....
> WHERE avance_tareas.[fecha_avance] =
> DLast("fecha_avance","avance_tareas","Id=" & [avance_tareas].Id )
>
> Así tendrás el último, para obtener los dos anteriores simplemente aumentas
> las condiciones con
> ....
> " and avance_tareas.[fecha_avance] < " &
> DLast("fecha_avance","avance_tareas","Id=" & [avance_tareas].Id )
>
> uniendo las dos consultas
>
> y para el tercero
> ....
saludos
"Ju@nK [MVP 2006/8]" escribió:
> Create una consulta de selección con los datos que necesitas y en where
> pones
>
> ....
> WHERE avance_tareas.[fecha_avance] =
> DLast("fecha_avance","avance_tareas","Id=" & [avance_tareas].Id )
>
> Así tendrás el último, para obtener los dos anteriores simplemente aumentas
> las condiciones con
> ....
> " and avance_tareas.[fecha_avance] < " &
> DLast("fecha_avance","avance_tareas","Id=" & [avance_tareas].Id )
>
> uniendo las dos consultas
>
> y para el tercero
> ....
select top 3
from..
where...
order by fecha
union
select top 3..
...
..
etc..
ahí te daría las últimas 3 fechas de cada tarea o las primeras 3
(dependiendo si ponés asc o desc_)
saludos,
Martín
"christianmesa" <christ...@discussions.microsoft.com> escribió en el
mensaje news:B0B2B477-060B-4BDF...@microsoft.com...
" and avance_tareas.[fecha_avance] < #" &
DLast("fecha_avance","avance_tareas","Id=" & [avance_tareas].Id ) & "#"
--
--
**
Salu2/Regards
Ju@nK [MVP Access] 2006/08
[DCE2003 ***] + VSTO [DCE2005 **]
http://juank.mvps.org http://www.juank.es
Correos personales o preguntas particulares en mi grupo
http://groups.google.es/group/juank?hl=es
www.juank.tk
¿Que es un MVP?, entérate en http://mvp.support.microsoft.com
**
"christianmesa" <christ...@discussions.microsoft.com> escribió en el
mensaje news:E72BD727-0B90-4F11...@microsoft.com...
--
--
**
Salu2/Regards
Ju@nK [MVP Access] 2006/08
[DCE2003 ***] + VSTO [DCE2005 **]
http://juank.mvps.org http://www.juank.es
Correos personales o preguntas particulares en mi grupo
http://groups.google.es/group/juank?hl=es
www.juank.tk
¿Que es un MVP?, entérate en http://mvp.support.microsoft.com
**
"Martín" <ghazaria...@gmail.com> escribió en el mensaje
news:eMJH0bl...@TK2MSFTNGP03.phx.gbl...
Select tareas.titulo, tareas.ambito, tareas.prioridad,
avance_tareas.fecha_avance, avance_tareas.descripcion
From tareas Inner Join Avance_Tareas
On tareas.id = Avance_Tareas.id
Where
(Select Count(*) From avance_tareas As T
Where T.id = tareas.Id
And T.fecha_avance >= Avance_Tareas.fecha_avance) <= 3;
... puesto que me parece interesante el tema, en los próximos dias publicaré
algo en mi blog al respecto (devolver n registros en una consulta agrupada).
P.D. Tal y como está el diseño de las tablas, si hay valores repetidos (de
fecha) para un mismo id, la consulta no devolverá correctamente los
resultados, pero esto se puede solucionar si en la subconsulta podemos
incorporar un campo clave de la tabla Avance_Tareas.
Adios, un saludo.
Ramon Poch, raipon. Mi Bloc : www.sqlraipon.blogspot.com
PD: Caso resuelto :-)
"raipon" escribió:
> Hola, he de confesar que este tipo de hilos me gustan. Tanto por el interés
> y complejidad de la pregunta como por la calidad de las respuestas dadas
> hasta ahora.
> Mi granito de arena :
>
> Select tareas.titulo, tareas.ambito, tareas.prioridad,
> avance_tareas.fecha_avance, avance_tareas.descripcion
> From tareas Inner Join Avance_Tareas
> On tareas.id = Avance_Tareas.id
> Where
> (Select Count(*) From avance_tareas As T
> Where T.id = tareas.Id
> And T.fecha_avance >= Avance_Tareas.fecha_avance) <= 3;
>
> .... puesto que me parece interesante el tema, en los próximos dias publicaré