elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Tabla de doble entrada
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Tabla de doble entrada  (Leído 4,137 veces)
bgnumis

Desconectado Desconectado

Mensajes: 155


Ver Perfil
Tabla de doble entrada
« en: 16 Noviembre 2015, 08:57 am »

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 Desconectado

Mensajes: 155


Ver Perfil
Re: Tabla de doble entrada
« Respuesta #1 en: 16 Noviembre 2015, 21:10 pm »

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 Desconectado

Mensajes: 731


Ver Perfil
Re: Tabla de doble entrada
« Respuesta #2 en: 17 Noviembre 2015, 11:12 am »

Contar en MySQL es muy facil:

Código
  1. SELECT COUNT(idregistro) FROM tabla WHERE provincias = ?

y lo mismo para las funciones:

Código
  1. SELECT COUNT(idregistro) FROM tabla WHERE funciones = ?

y para los totales:

Código
  1. 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:

Código
  1. SELECT COUNT(idregistro) FROM tabla WHERE funciones = ? AND provincias = ?
En línea

bgnumis

Desconectado Desconectado

Mensajes: 155


Ver Perfil
Re: Tabla de doble entrada
« Respuesta #3 en: 17 Noviembre 2015, 16:54 pm »

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 Desconectado

Mensajes: 123



Ver Perfil
Re: Tabla de doble entrada
« Respuesta #4 en: 17 Noviembre 2015, 17:21 pm »

El número delante de la función qué significa?
Citar
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 Desconectado

Mensajes: 155


Ver Perfil
Re: Tabla de doble entrada
« Respuesta #5 en: 17 Noviembre 2015, 19:09 pm »

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 Desconectado

Mensajes: 123



Ver Perfil
Re: Tabla de doble entrada
« Respuesta #6 en: 17 Noviembre 2015, 19:39 pm »

Esto es lo que necesitas?.

Código
  1. SELECT DISTINCT(A.Provincia), B.Maestro, B.Medico, B.Total FROM Tabla1 AS A
  2. LEFT JOIN (
  3. SELECT Provincia,
  4. COUNT(CASE WHEN Funcion='Maestro' THEN 1 ELSE NULL END) AS Maestro,
  5. COUNT(CASE WHEN Funcion='Medico' THEN 1 ELSE NULL END) AS Medico,
  6. COUNT(*) AS Total
  7. FROM Tabla1 GROUP BY Provincia
  8. ) AS B ON A.Provincia=B.Provincia
  9.  
En línea

bgnumis

Desconectado Desconectado

Mensajes: 155


Ver Perfil
Re: Tabla de doble entrada
« Respuesta #7 en: 17 Noviembre 2015, 19:43 pm »

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 Desconectado

Mensajes: 155


Ver Perfil
Re: Tabla de doble entrada
« Respuesta #8 en: 17 Noviembre 2015, 20:05 pm »

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 Desconectado

Mensajes: 155


Ver Perfil
Re: Tabla de doble entrada
« Respuesta #9 en: 17 Noviembre 2015, 21:34 pm »

Please heeelllppppp
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Duda sobre insersion a tabla html desde tabla sql
Bases de Datos
mokoMonster 2 4,145 Último mensaje 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,389 Último mensaje 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,705 Último mensaje 9 Septiembre 2010, 23:23 pm
por bardackx
¿Cómo hacer una consulta doble a una tabla?
Bases de Datos
1mpuls0 5 8,690 Último mensaje 10 Junio 2012, 05:16 am
por 1mpuls0
Tabla dentro de tabla.
Java
KenoChile 2 3,085 Último mensaje 10 Agosto 2012, 16:31 pm
por KenoChile
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines