Ver Mensaje Individual
  #4 (permalink)  
Antiguo 13/01/2011, 09:26
leonardo_josue
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 4 meses
Puntos: 447
Respuesta: Ayuda con consulta SQL

Buenos días CrepuX:

Hay varios detalles que hay que corregir en lo que estás intentando hacer:

Primero en la consulta, al poner esto SUM(Usuario) lo que estaría intentando hacer es sumar Javi + Ana + Juan. Al no ser NUMEROS entonces ocurre el error que mencionas.

Lo que tú necesitas hacer es CONTAR los registros SIN AGRUPAR, es decir simplemente tienes que hacer esto:

Código MySQL:
Ver original
  1. Select count(*) from Incidencias
  2. WHERE (Fecha BETWEEN '27/12/2010' AND '05/01/2011')

NOTA: No mencionas qué manejador de base de datos estás utilizando, pero la mayoría utiliza el formato de fecha ANSI (yyyymmdd), por lo que sería conveniente que trataras de utilizar esto, pero si tu consulta funciona pues adelante.

Ahora bien, para poder hacer un UNION las dos consultas que quieras juntar DEBEN TENER EL MISMO NÚMERO DE CAMPOS y DEL MISMO TIPO. La primer consulta que tienes para obtener el desglose te está regresando tres columnas:

Código:
Tipo|Total|Usuario

Por lo tanto la consulta para obtener el total también de debe regresar tres campos. la consulta quedaría más o menos así

Código SQL:
Ver original
  1. SELECT DISTINCT Tipo, COUNT(Usuario) AS TOTAL, Usuario
  2. FROM Incidencias
  3. WHERE (Fecha BETWEEN '27/12/2010' AND '05/01/2011')
  4. GROUP BY Usuario, Tipo
  5. UNION
  6. SELECT 'Total:' AS Tipo, COUNT(*) AS TOTAL, NULL AS Usuario
  7. FROM Incidencias
  8. WHERE (Fecha BETWEEN '27/12/2010' AND '05/01/2011')

Esta consulta te regresaría lo siguiente:

Código:
Tipo|TOTAL|Usuario
------------------------------
ANIMALES|2|Javi
COMERCIO|1|Ana
COMERCIO|1|Juan
SONOMETRIA|1|Ana
SONOMETRIA|1|Javi
SONOMETRIA|1|Juan
SEGURIDAD|2|Ana
TOTAL:|9|null
Saludos
Leo.