esta ocasión vengo por que me he encontrado con un desafío.
Estoy viendo el sistema bibliotecario de una institución educativa y me han dejado de realizar unas estadísticas sobre el uso de los recursos bibliotecarios.
Detallo el problema que tengo acontinuación.
Tengo la tabla PRESTAMOS donde se almacenan los registros de los libros que han sido prestados junto con los datos respectivos, id del usuario que lo prestó, la fecha en q se prestó, la hora, y la fecha en que debe de entregarlo...
Ahora bien hay una tabla que contiene los libros, la tabla se llama obras, entonces cada obra tiene su clasificación de 0, 1, 2, 3, 4, 5 hasta 9 o más.
Con estos datos debo de obtener la cantidad de usuarios que realizaron préstamos en un rango de fechas (fecha_inicio y fecha_fin), teniendo en cuenta que cada usuario puede realizar 3 consultas diarias.
Ahora bien, tengo que mostrar una tabla ordenada y agrupada según la clasificación de los libros, seguido de la cantidad de Usuarios únicos, sin repetir, que prestaron libros y luego la cantidad de libros que fueron prestados, quedando asi el resultado que deseo obtener.
No | Categoría | Cantidad de Usrs | Cantidad de Préstamos
________________________________________________
1 | 0 | 512 | 1020
2 | 1 | 50 | 212
3 | 2 | 10 | 50
4 | 3 | 23 | 72
etc etc etc
Hoy viene el problema, recordemos que los usuarios pueden realizar prestamos de cualquier categoria, categoría 1, Categoria 2.. de todas las que existan
Al hacer la consulta, me debe de dar Cierta cantidad, pero el problema es que me duplica los ids de los usuasio, por que si un usuario prestó un libro de la categoría 0 me lo agrega a la cantidad de usuarios, pero cuando ese mismo usuarios presta otro libro de la categoría 2, me lo suma de nuevo y asi pasa cuando ese mismo usuario presta un libro de la categoria 3, asi como les explico me acaba de sumar 2 veces mas el Id de ese usuario, entonces deseo saber si hay una manera de poder obtener el id del usuario, solo una vez sin que se sume en las demás categorías, para poder obtener el número exacto
he empezado a armar el query y lo que tengo hasta este momento es lo siguiente:
Código:
Espero su ayuda por favor, en si lo que deseo hacerSELECT count(obras.clasifica) cantidad, substring(obras.clasifica,1,1) categoria, count(distinct usrs.idusr) cantidad_usrs FROM prestamos INNER JOIN catalogo ON prestamos.idcat = catalogo.idcat INNER JOIN obras ON catalogo.idobra = obras.idobra INNER JOIN usrs ON usrs.idusr = prestamos.idusr INNER JOIN cooperante on cooperante.id = usrs.idcooperante WHERE substring(prestamos.dateadd,1,10) >='2012-06-01' AND substring(prestamos.dateadd,1,10) <='2012-07-31' and cooperante.id='1' and usrs.eliminado = 0 GROUP BY substring(obras.clasifica,1,1);
es obtener los usuarios agrupados por categoría pero que si un mismo usuario tiene un registro a otra categoria no lo tome en cuenta el mysql,
es algo complicado toda esta explicación, pero espero haya sido de ayuda para comentarles mi caso y espero su ayuda,
gracias de antemano