Autor
|
Tema: Tabla de doble entrada (Leído 4,117 veces)
|
bgnumis
Desconectado
Mensajes: 155
|
Hola a todos,
Tengo una tabla que tiene PRovincias, Funciones, Fecha, idregistro.
Me gustaría hacer una tabla donde no sólo le marque por GROUP BY por filas sino también por columnas, de campos diferentes utilizando COUNT ¿Esto podría ser? ¿Como se haría?
Por ejemplo sería en la Filas agrupar por provincias y en las columnas por funciones (utilizando el COUNT) ¿Cómo se habría una tabla así, si es que se puede?
|
|
|
En línea
|
|
|
|
bgnumis
Desconectado
Mensajes: 155
|
Hola he leido pero no acabo de ver como que se puede utilizar PIVOT pero no veo como.
Tabla1
Valencia Maestro 12 Valencia Medico 4 Alicante Enfermera 6 Alicante Cocinera 2 Valencia Enfermera 8 Alicante Maestro 2 Valencia Maestro 4
Resultado Maestro Medico Enfermera Cocinera Total Valencia 2 1 1 0 4 Alicante 1 0 1 1 3 Total 2 1 2 1 7
Por ejemplo yo tengo una tabla Tabla1 que tiene las provincias y funciones y quiero que me cuente cuantos idregistro hay por filas serian las provincias y por columnas las funciones. ¿Como se añadiría una fila de totales tanto por columnas como por filas?
A ver si me podeis ayudar habia planteado fatal la pregunta
|
|
|
En línea
|
|
|
|
gAb1
Desconectado
Mensajes: 731
|
Contar en MySQL es muy facil: SELECT COUNT(idregistro) FROM tabla WHERE provincias = ?
y lo mismo para las funciones: SELECT COUNT(idregistro) FROM tabla WHERE funciones = ?
y para los totales: SELECT COUNT(idregistro) FROM tabla
Simplemente añade la condición WHERE y AND para la segunda condición, por ejemplo si quieres contar cuantos maestros hay en valencia: SELECT COUNT(idregistro) FROM tabla WHERE funciones = ? AND provincias = ?
|
|
|
En línea
|
|
|
|
bgnumis
Desconectado
Mensajes: 155
|
Hola muchas Gracias,
Lo de contar lo tengo claro. Lo único que quiero tengo duda es cómo hacer una tabla que por filas me agrupe por PRovincias y por columnas por Funciones, sin tener que definirlas (se que debiera implicar group by y count que para que me lo saque por filas sé hacerlo, la dificultad es que me agrupe además también por columnas por "funciones". Este es el ejemplo de lo que quiero, tampoco sabría como sacarlo con echo? en php
Tabla1
Valencia Maestro 12 Valencia Medico 4 Alicante Enfermera 6 Alicante Cocinera 2 Valencia Enfermera 8 Alicante Maestro 2 Valencia Maestro 4
Resultado Maestro Medico Enfermera Cocinera Total Valencia 2 1 1 0 4 Alicante 1 0 1 1 3 Total 2 1 2 1 7
A ver si me puedes ayudar.
|
|
|
En línea
|
|
|
|
0roch1
Desconectado
Mensajes: 123
|
El número delante de la función qué significa? Valencia Maestro 12 Coloca un ejemplo claro, todos los campos que tienes en la tabla, el resultado que esperas con valores reales.
|
|
|
En línea
|
|
|
|
bgnumis
Desconectado
Mensajes: 155
|
Hola el ejemplo más claro es este, el número es un id, conteo idregistro porque sé que nunca será nulo:
Tabla1 (sus campos son: Provincia, Función, idregistro)
Valencia Maestro 12 Valencia Medico 4 Alicante Enfermera 6 Alicante Cocinera 2 Valencia Enfermera 8 Alicante Maestro 2 Valencia Maestro 4
Resultado Maestro Medico Enfermera Cocinera Total Valencia 2 1 1 0 4 Alicante 1 0 1 1 3 Total 2 1 2 1 7
El tema sería utilizando GROUP BY y count que me sacara el conteo por filas provincias, por columnas las funciones.
Espero haberme expresado mejor.
Muchas Gracias por adelantado.
|
|
|
En línea
|
|
|
|
0roch1
Desconectado
Mensajes: 123
|
Esto es lo que necesitas?. SELECT DISTINCT(A.Provincia), B.Maestro, B.Medico, B.Total FROM Tabla1 AS A LEFT JOIN ( SELECT Provincia, COUNT(CASE WHEN Funcion='Maestro' THEN 1 ELSE NULL END) AS Maestro, COUNT(CASE WHEN Funcion='Medico' THEN 1 ELSE NULL END) AS Medico, COUNT(*) AS Total FROM Tabla1 GROUP BY Provincia ) AS B ON A.Provincia=B.Provincia
|
|
|
En línea
|
|
|
|
bgnumis
Desconectado
Mensajes: 155
|
Esto sí creo que me vale cuando llegue a casa lo pruebo pero me obliga a saber todos los posibles valores de PRovincia y Función. Yo quería que el solo lo obtuviese, que es lo que hace GROUP BY, pero no sólo por filas sino también por columnnas. Muchas Gracias. Aunque pensándolo también quizá valga hacer un distinct por funciones, le pegaré una vuelta.
|
|
|
En línea
|
|
|
|
bgnumis
Desconectado
Mensajes: 155
|
Me vale, tengo dos dudas:
Me saca los totales de todo ¿Cómo podría decir que me saque sólo los de maestro y médico?
Me saca los totales por filas, ¿Cómo pedirle por columnas?
¿Ejecuto la sentencia en phpmyadmin y me sale una tabla. ¿Cómo podría mostrar en php esa tabla con php? ¿Con echo?
A ver si me puedes ayudar.
|
|
|
En línea
|
|
|
|
bgnumis
Desconectado
Mensajes: 155
|
Please heeelllppppp
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Duda sobre insersion a tabla html desde tabla sql
Bases de Datos
|
mokoMonster
|
2
|
4,129
|
20 Febrero 2010, 01:20 am
por Shell Root
|
|
|
no me borra la tabla haciendo delete on cascade tabla n:m
Bases de Datos
|
kinos
|
2
|
4,364
|
31 Julio 2010, 13:05 pm
por kinos
|
|
|
Ayuda para simular un dispositivo de entrada o periferico de entrada
Programación C/C++
|
bardackx
|
0
|
2,661
|
9 Septiembre 2010, 23:23 pm
por bardackx
|
|
|
¿Cómo hacer una consulta doble a una tabla?
Bases de Datos
|
1mpuls0
|
5
|
8,656
|
10 Junio 2012, 05:16 am
por 1mpuls0
|
|
|
Tabla dentro de tabla.
Java
|
KenoChile
|
2
|
3,053
|
10 Agosto 2012, 16:31 pm
por KenoChile
|
|