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

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  Bases de Datos (Moderador: Carloswaldo)
| | | |-+  TOTALES y totales no duplicados
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: TOTALES y totales no duplicados  (Leído 5,257 veces)
bgnumis

Desconectado Desconectado

Mensajes: 155


Ver Perfil
TOTALES y totales no duplicados
« en: 10 Junio 2015, 23:49 pm »

Hola a ver si me podeis ayudar a obtener una tabla resumen:
Tengo una tabla llamada "Reg", en esta hay una serie de campos (insertados por los usuarios) llamadas "id_usuario", "objetivo", "fecha".
Un objetivo es un texto de 4 letras/números, y en este caso por cada "fecha" puede haber objetivos duplicados, triplicados y con usuarios diferentes y fechas diferentes o iguales.
Otra tabla llamada "totales" tiene "id_usuario" y  "objetivo" (en esta se detalla todos los posibles objetivos, los objetivos en esta tabla son únicos, y registro por registro se le asocia a cada "objetivo" un usuario.
Otra tabla llamada "nombrelargo" tiene los campos " id_usuario"  y "nombre largo" (que es un texto con su nombre)
Quiero sacar un "resumen" con los siguientes cuadros:

Una tabla de TOTALES.
Por un lado quiero sacar cuantos objetivos tiene cada id usuario (si hay 20 registros del id_usuario número 7, obtener una tabla que vaya a nombre largo y ponga "id_usuario" y por por cada uno me indique el total de "objetivos" que tiene en "totales". Además, para que sea más "entendible" me indique en una tercera columna para cada id_usuario el "nombre largo" asociado que está en la Tabla  "nombrelargo"

El siguiente cuadro resumen, sería:

Por cada " id_usuario " cuantos registros  de "objetivos no duplicados" totales hay de ese usuario. Por último, desglosar de ese total "no duplicado" cuantos son del usuario de acuerdo con la tabla "totales" y cuantos son el resto. Por último, la última columna dividiría "el total de registros por usuario no repetido" / "total de ese usuario obtenido en la tabla "TOTALES".

Supongo que es muy complicado, en excel se hacerlo, pero me interesaría hacerlo en sql. Si me podeis hechar un cable, o algún manual que haga filtros con sql con tablas os lo agradecería un montón.


En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: TOTALES y totales no duplicados
« Respuesta #1 en: 11 Junio 2015, 02:23 am »

lo que buscas se resume en las palabras DISTINCT, COUNT y JOIN :P

era más facil si pegabas una captura de las tablas o si las expresabas como si fueran una tabla, y no entendí mucho lo que intentas hacer...

en este tutorial de mysql puedes conseguir los temas con las palabras clave que te dejé, recomiendo la lectura

trata de armar algo y nos avisas como te fue


En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
bgnumis

Desconectado Desconectado

Mensajes: 155


Ver Perfil
Re: TOTALES y totales no duplicados
« Respuesta #2 en: 11 Junio 2015, 14:22 pm »

Empiezo por la consulta más fácil:

En la tabla "totales" tengo "id_usuario" y  "objetivo" (en esta se detalla todos los posibles objetivos, los objetivos en esta tabla son únicos, y registro por registro se le asocia a cada "objetivo" un usuario.

De manera que tengo 5 id_usuarios, y 500 objetivos.

En la tabla hay 400 registros donde cada objetivo tiene una columna de id_usuario asociado de los cinco que hay y 100 valores están en blanco.

Si quiero extrar una tabla resumen con las columnas id_usuario, total objetivos.

De manera que si soy el id_usuario 1 y tengo 77 objetivos, me haga un count y me lo muestre.

Sé que la sentencia debería ser algo así como
Código
  1.  
  2. SELECT COUNT(id_usuario) FROM totales
  3.  



 (de esta forma omito los valores nulos y me suma todos los valores donde id_usuario no es nulo)

¿Pero como le digo en php y mysql? Que me "busque" los diferentes id_usuario (sin tener que decir Where id_usuario=1etc y me muestre en una tabla el sumatorio subtotal de cada usuario?

Sigo leyendo pero por si me podeis dar un empujoncito y no para tirarme al suelo...jeje.

En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: TOTALES y totales no duplicados
« Respuesta #3 en: 11 Junio 2015, 15:35 pm »

como te dije, esta usaría 2 de 3 parabras que te mostré

Código
  1. SELECT COUNT(DISTINCT(id_usuario)) FROM totales

va a contar cuantos id_usuario son distintos...

recomiendo leer el tutorial, no es largo y solo necesitas revisar los capitulos con las palabras que te indiqué
En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
bgnumis

Desconectado Desconectado

Mensajes: 155


Ver Perfil
Re: TOTALES y totales no duplicados
« Respuesta #4 en: 11 Junio 2015, 17:48 pm »

Vale, prometo leerlos todos. Eres guay.

Gracias¡¡¡

(Qué pelota, pero gracias)
En línea

bgnumis

Desconectado Desconectado

Mensajes: 155


Ver Perfil
Re: TOTALES y totales no duplicados
« Respuesta #5 en: 13 Junio 2015, 23:59 pm »

Hola,

Esoy intentando leerme el manual que me pasaron en este hilo pero no consigo resolver lo siguiente:

Código
  1. SELECT COUNT(DISTINCT('id_usuario')) FROM totales
  2.  


Lo que yo esperaría es que de esta consulta me "sacara" dos columnas, una de id_usuario distintos y otra que sería el número de veces que está repetido ese usuario.

Para sacar los datos en php pongo:

Código
  1.  
  2. while($consulta = mysql_fetch_array($b)){
  3.  
  4.  
  5. echo "<td>".$consulta['0']."</td>";
  6. echo "<br>";
  7.  
  8. echo "<td>".$consulta['1']."</td>";
  9. echo "<br>";
  10. }
  11.  

b es donde pongo el SELECT.

Si por ejemplo pongo

Código
  1. $busqueda=mysql_query("SELECT DISTINCT(`id_usuario`) FROM oficinas ") ;

Entonces sí me saca la columna de cada usuario diferente pero la segunda columna de totales de cada usuario no sabría como sacarla...

¿Qué es lo que no entiendo?

En esta consulta no necesito utilizar JOIN porque es un cálculo de una misma tabla.

Ay, lo siento por preguntar tanto....


Antes no era "oficinas" sino "totales".

Estoy viendo que hay una función llamada GROUP BY hoy estoy ya agotado pero mañana veré a ver si me sirve (y soy capaz de entenderlo).

Antes no era "oficinas" sino "totales".

Estoy viendo que hay una función llamada GROUP BY hoy estoy ya agotado pero mañana veré a ver si me sirve (y soy capaz de entenderlo).

Hola a todos,

¿Por qué no me omite los "id_usuario" que están vacios en el COUNT?


Código
  1. SELECT id_usuario, COUNT((`id_usuario`)) FROM totales GROUP BY `id_usuario`"
  2.  

Es decir, me cuenta que hay 16 "" vacios y yo no quiero que me saque el cálculo de ese registro. (Pongo "" porque no hay nada y entiendo que tampoco espacios).
« Última modificación: 14 Junio 2015, 15:48 pm por engel lex » En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: TOTALES y totales no duplicados
« Respuesta #6 en: 14 Junio 2015, 15:50 pm »

el conteo, cuenta todo... vas a tener que colocar WHERE id_usuario != ''
En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Totales por dia
Programación Visual Basic
mdg 5 2,512 Último mensaje 29 Julio 2008, 18:40 pm
por Zeroql
Sumar totales y luego restarlos
Programación Visual Basic
freddyjose00 4 3,200 Último mensaje 18 Abril 2010, 18:51 pm
por freddyjose00
256Mb utilizables DE 4 GB totales W7 Ultimate « 1 2 »
Windows
BgCRaCK 10 14,954 Último mensaje 8 Octubre 2011, 04:29 am
por carloscosme
Por qué puedo ver las estadísticas totales del servidor mysql?
Software
ccrunch 0 1,598 Último mensaje 16 Febrero 2014, 00:33 am
por ccrunch
como almacenar los totales de una JTable a un Textfield? NETBEANS
Dudas Generales
Holderk6 0 2,135 Último mensaje 17 Marzo 2014, 22:04 pm
por Holderk6
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines