Como puedo hacer una consulta a un BD access que me traiga las edades en grupos o rangos:
1970-1980=23 registros
1981-1990=12 registros
etc...
Alguna Idea

| ||||
Hmm supongo que access admitira la instrucion Between Select * from T_tabla where campo between valorinicio and valorfin
__________________ La utopía está en el horizonte: cuando yo camino dos pasos ella se aleja dos pasos. Yo camino diez pasos y ella está diez pasos más lejos ¿Para qué sirve la utopía?. Sirve para eso: para caminar. |
| ||||
Usa la funcion PARTITION Es una función agregada de SQL de Jet. Supon que tienes la Tabla1 con estos datos: nombre ano x 1970 c 1971 f 1972 d 1973 f 1980 x 1983 f 1992 SELECT Partition([ano],1970,2010,10) as Rango, Count(Nombre) as NumerodeUsuarios FROM Table1 GROUP BY Partition([ano],1970,2010,10) te devolvería: Rango NumerodeUsuarios 1970:1979 4 1980:1989 2 1990:1999 1 La sintaxis es Partition(campo, inicio, fin, intervalo) Espero que te sirva. |
| ||||
Funciona OK en Access pero al correrlo en .asp no es posible tengo este medio codigo pero no se donde esta la falla, agracezco aportes: <HTML> <TITLE> Rango de edades</TITLE> <BODY> <% strconn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("database/paginar.mdb") & ";Persist Security Info=False" set cnn = CreateObject("ADODB.Connection") cnn.Open strconn%> <H3>Rangos de Edad</H3> <% SQL = "SELECT Partition(Registro.Edad,17,80,10) AS Rango, Count(Nombre) AS NumerodeUsuarios FROM Registro GROUP BY Partition(Registro.Edad,17,80,10)" %> <CENTER> <TABLE BORDER=0 bgcolor="#cccc99"> <TR> <TH> <font face="verdana" size="1">Rango</FONT> </TH> <TH> <font face="verdana" size="1">No Usuarios</FONT> </TH> <% DO UNTIL rs.Eof %> <TR> <TD vAlign=top align=middle bgColor=#e6ebfb> <font face="verdana" size="1"><%= rs("Rango") %></font></TD> <TD vAlign=top align=middle bgColor=#e6ebfb> <font face="verdana" size="1"><%= rs("NumerodeUsuarios") %></font></TD> <% rs.MoveNext LOOP rs.Close Conn.Close %> <TR> </TABLE> </CENTER> </BODY> </HTML>
__________________ "Nuestro conocimiento es necesariamente finito, mientras que nuestra ignorancia es necesariamente infinita." Popper, Karl Raimund |
| ||||
Mientras se soluciona lo del codigo...es posible que en el select: SELECT Partition(Registro.Edad,17,80,10) AS Rango, Count(Nombre) AS NumerodeUsuarios FROM Registro GROUP BY Partition(Registro.Edad,17 ,80 ,10) Los valores extremo del rango sean "buscados", es decir algo asi como Min(Registro.Edad) o algoa asi?. Esto ya que no se sabra cual podra ser el valor maximo o minimo de los registros en un instante dado. ME explique? ![]() ![]() ![]()
__________________ "Nuestro conocimiento es necesariamente finito, mientras que nuestra ignorancia es necesariamente infinita." Popper, Karl Raimund |
| ||||
No te preocupes por los valores maximos y minimos. Ponle un mínimo muy bajo y un máximo muy alto. Los rangos en los que no haya valores, no aparecerán. En mi ejemplo anterior, si le hubiera puesto desde 1500 hasta 3000, el resultado hubiera sido el mismo. Respecto al error de código parece que es porque no has seteado ni abierto el objeto rs. Solo inicializaste la variable SQL. Un saludo. |
| ||||
![]() ![]() Gracias por lo de los max y min. no tiene sentido preocuparse por algo que es innecesario. ![]()
__________________ "Nuestro conocimiento es necesariamente finito, mientras que nuestra ignorancia es necesariamente infinita." Popper, Karl Raimund Última edición por Eutheola; 05/07/2003 a las 10:04 |