Foros del Web » Programando para Internet » ASP Clásico »

Se puede hacer este 'SELECT Count()'?

Estas en el tema de Se puede hacer este 'SELECT Count()'? en el foro de ASP Clásico en Foros del Web. Tengo una tabla donde cada registro es un evento y en un campo de ésta tabla llamado 'mes' tengo el número de mes en donde ...
  #1 (permalink)  
Antiguo 21/03/2005, 15:33
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 24 años, 2 meses
Puntos: 535
Se puede hacer este 'SELECT Count()'?

Tengo una tabla donde cada registro es un evento y en un campo de ésta tabla llamado 'mes' tengo el número de mes en donde ese evento se produce. Puede haber más de un registro por més pero no necesariamente hay eventos en todos los meses.

La cosulta que necesito debería contar la cantidad de eventos para los distintos meses incluyendo los meses en los que no hay eventos (no hay ningún registro cuyo campo més contenga el valor, digamos, 11). Ej de lo que debería devolver:

Código:
Mes  | Cantidad
1    | 1
2    | 2
3    | 5
4    | 7
5    | 8
6    | 9
7    | 10
8    | 12
9    | 13
10   | 15
11   | 0
12   | 8
Sería muy facil si coloco una tabla llamada MESES y joineo ambas dos pero... ¿sin tener esta tabla?

__________________
...___...
  #2 (permalink)  
Antiguo 22/03/2005, 03:54
 
Fecha de Ingreso: octubre-2004
Mensajes: 104
Antigüedad: 20 años, 6 meses
Puntos: 0
Pues hombre, de donde no hay, no se puede sacar... Pero esto es lo único que se me ocurre. La única pega (que no se si lo es para ti) es que sale todo en distintos campos de un mismo registro.

Código:
SELECT count(CASE(mes) WHEN 1 THEN 1 END) enero
	, count(CASE(mes) WHEN 2 THEN 1 END) febrero
	, count(CASE(mes) WHEN 3 THEN 1 END) marzo
	, count(CASE(mes) WHEN 4 THEN 1 END) abril
	, count(CASE(mes) WHEN 5 THEN 1 END) mayo
	, count(CASE(mes) WHEN 6 THEN 1 END) junio
	, count(CASE(mes) WHEN 7 THEN 1 END) julio
	, count(CASE(mes) WHEN 8 THEN 1 END) agosto
	, count(CASE(mes) WHEN 9 THEN 1 END) septiembre
	, count(CASE(mes) WHEN 10 THEN 1 END) octubre
	, count(CASE(mes) WHEN 11 THEN 1 END) noviembre
	, count(CASE(mes) WHEN 12 THEN 1 END) diciembre
FROM eventos
  #3 (permalink)  
Antiguo 22/03/2005, 11:00
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 24 años, 2 meses
Puntos: 535
Gracias, luego lo pruebo.
Y no sería mayor problema si en vez de devolver 12 registros de 2 campos me deviolviera sólo uno de 12 campos.

Gracias
__________________
...___...
  #4 (permalink)  
Antiguo 22/03/2005, 14:06
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 24 años, 2 meses
Puntos: 535
Pues no, me da error (probándolo en el access):

"Error de sintaxis (falta operador) en la expresión de consulta 'count(case(mes) when 1 then 1 end) enero'"

Igual ya pedí que me creen la tabla meses para simplificar las cosas.
Gracias de tdas formas
__________________
...___...
  #5 (permalink)  
Antiguo 23/03/2005, 02:17
 
Fecha de Ingreso: octubre-2004
Mensajes: 104
Antigüedad: 20 años, 6 meses
Puntos: 0
Vaya, es que yo de access se lo justito. Lo que te he dicho funciona en SQL Server y Oracle al menos (creo que mysql tambien), pero en access estoy muy pez .
  #6 (permalink)  
Antiguo 23/03/2005, 10:42
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 24 años, 2 meses
Puntos: 535
Y lo bien que hacés de no meterte con el access
__________________
...___...
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:35.