Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Agrupar en Mysql

Estas en el tema de Agrupar en Mysql en el foro de Mysql en Foros del Web. Salu2, tengo una duda con mysql: Tengo una tabla llamada tabla3 , que tiene los campos de: Cita: Dia Mes Año Nombres Apellidos Edad Registro ...
  #1 (permalink)  
Antiguo 04/12/2005, 11:18
 
Fecha de Ingreso: diciembre-2005
Mensajes: 3
Antigüedad: 18 años, 4 meses
Puntos: 0
Pregunta Agrupar en Mysql

Salu2, tengo una duda con mysql:

Tengo una tabla llamada tabla3, que tiene los campos de:

Cita:
Dia
Mes
Año
Nombres
Apellidos
Edad
Registro No
Ahora quiero que me aparezca de la siguiente manera: que me ordene por año y que luego me ordene por dia-mes-año, es decir que me los agrupe por año y luego me muestre el resto de datos, es que quiero que me diga por ejemplo: en el año 2005 se registraron estas personas y me muestre el listado de datos de ese año, msa abajo que me diga lo mismo pero con el año 2004 yasi sucesivamente

Ejemplo:

Cita:
Creo un registro con estos datos:

Dia.....Mes.......Año.........Nombres............. .........Apellidos..................Edad......NoRe gistro
29......11.........2004........Carlos Arturo................Rojas......................2 0..........1
30......11.........2004........Mauricia........... ............Torres.....................21......... .2
1........12.........2005........Tatiana........... .............Murcia.....................21........ ..3
y asis sucesivamente; ahora quiero que me aparezca asi:

Cita:
Año 2005

Dia.....Mes.......Año.........Nombres............. .........Apellidos..................Edad......NoRe gistro
1........12.........2005........Tatiana........... .............Murcia.....................21........ ..3

Año 2004

Dia.....Mes.......Año.........Nombres............. .........Apellidos..................Edad......NoRe gistro
29......11.........2004........Carlos Arturo................Rojas......................2 0..........1
30......11.........2004........Mauricia........... ............Torres.....................21......... .2
(Los puntos colocados en los ejemplos son par mostrar separaciones)

Osea que en cada año me muestre los datos de ese año, pero solo me agrupe por el campo anio que es el año de registro.

La cuestion es que tengo la conexion a la base de datos en un registro llamado: conexion.php y el enlace de conectar es $link.

Como debo hacer para crear la secuencia?


Gracias


SAlu3
  #2 (permalink)  
Antiguo 04/12/2005, 21:47
Avatar de jahepi
Colaborador
 
Fecha de Ingreso: diciembre-2004
Ubicación: Querétaro
Mensajes: 1.124
Antigüedad: 19 años, 4 meses
Puntos: 43
Hola AsDfog!

Puedes realizarlo de esta manera por año.

Código:
SELECT * FROM tuTabla ORDER BY año;
O si lo quieres por año y por mes.

Código:
SELECT * FROM tuTabla ORDER BY año, mes;
O por año, mes y día.

Código:
SELECT * FROM tuTabla ORDER BY año, mes, dia;
Si quieres acomodar tus registros de manera ascedente o descendente puedes utilizar las palabras reservadas DESC y ASC de esta manera:

Código:
SELECT * FROM tuTabla ORDER BY año, mes, dia DESC;
SELECT * FROM tuTabla ORDER BY año, mes, dia ASC;
Suerte!
__________________
Una contraseña es como la ropa interior. No deberías dejarlas afuera a la vista de otras personas, deberías cambiarla regularmente, y ni se te ocurra prestarla a extraños.
  #3 (permalink)  
Antiguo 05/12/2005, 06:14
 
Fecha de Ingreso: diciembre-2005
Mensajes: 3
Antigüedad: 18 años, 4 meses
Puntos: 0
Exclamación

SAlu2 jahepi, gracias por tu respuesta, pero lo que me sugieres es para ordenar los registros, lo que necesito es que teniendo los registros, me los muestre agrupados por año, es decir que me diga por ejemplo:

Cita:
Para el año 2005..
Existen estos registros...

Para el año 2004..
Existen estos registros...

Para el año 2003..
Existen estos registros...
y así sucesivamente.

osease...

Ejemplo:

Cita:
Tengo una tabla llamada tabla1 con estos registros:

Dia.....Mes.......Año.........Nombres............. .........Apellidos..................Edad......NoRe gistro
29......11.........2004........Carlos Arturo................Rojas......................2 0..........1
30......11.........2004........Mauricia........... ............Torres.....................21......... .2
1........12.........2005........Tatiana........... .............Murcia.....................21........ ..3
.
.
.
y asis sucesivamente; ahora quiero que me aparezca asi:

Cita:
Año 2005

Dia.....Mes.......Año.........Nombres............. .........Apellidos..................Edad......NoRe gistro
1........12.........2005........Tatiana........... .............Murcia.....................21........ ..3

Año 2004

Dia.....Mes.......Año.........Nombres............. .........Apellidos..................Edad......NoRe gistro
29......11.........2004........Carlos Arturo................Rojas......................2 0..........1
30......11.........2004........Mauricia........... ............Torres.....................21......... .2

(Los puntos colocados en los ejemplos son par mostrar separaciones)

Gracias por su colaboracion

SAlu3
  #4 (permalink)  
Antiguo 05/12/2005, 06:28
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
... bueno, si ya estás hablando de una presentación (formato) deberías de ver "por el otro lado"... ¿quién se va a encargar de mostrar los datos?; puedo ver que manejarás PHP.

Puedes hacer tu consulta con los registros ordenados por año... así te aseguras que, de alguna forma, los años vengan "juntos". Posteriormente puedes dentro de un ciclo crear una variable auxiliar en la que guardarás el "resultado anterior" y por cada ciclo comparar su valor con "el resultado actual"...

Código PHP:
$aux"";
while(
$row=mysql_XXX_XXX($ejemplo)) {
      if(
$aux!=$row['anyo']) { // no uses "ñ"
            
$aux$row['anyo']; 
            echo 
"<br><br>Año ".$row['anyo']."<br>";
            echo 
"Día....Mes....etc";
      }
      echo 
$row['dia']."..........".$row['mes'].".........".$row['etc'];

Algo así, solo es cuestión que le pienses bien.

Saludos!
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 23:08.