Ver Mensaje Individual
  #9  
Antiguo 28-07-2005
Avatar de hector.roma
hector.roma hector.roma is offline
Miembro
 
Registrado: jul 2005
Ubicación: a caballo entre Galicia y Portugal
Posts: 58
Reputación: 19
hector.roma Va por buen camino
Recapitulemos

Supongamos una tabla por todos conocida y las siguentes sql...
Código SQL [-]
SELECT count(codcli) ,sum(codcli +1), codcli 
FROM clientes 
WHERE codcli=999

Código SQL [-]
SELECT count(codcli) ,sum(codcli +1), codcli 
FROM clientes 
WHERE codcli=999 
GROUP BY codcli

La primera versión da error ya que la columna codcli, no está incluida en ninguna función de agregado y no hay claúsula GROUP BY. Al añadirla, ya todo corre bien como es normal.

La sentencia COUNT devuelve CERO si no encuentra ningún registro, por eso si la tabla está vacía o si ese registro no existe, devolverá CERO. En cualquier otro caso, el valor que le corresponda.

La sentencia SUM ignora los valores nulos, por lo menos en T-SQL, por lo que si codcli es null, no debería devolver nada.

Ahora bien, a mi también me puede parecer lógico que en otras implementaciones hayan adoptado la postura de devolver cero como la funcion COUNT.

Saludos, y buen viaje a los que os vais de vaciones.
Y cuidado con las francesas/es.
Responder Con Cita