Ver Mensaje Individual
  #9  
Antiguo 13-10-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Reputación: 29
Lepe Va por buen camino
Lo que pones detrás del count(*) es un alias, es decir, un nombre para la expresión Count, si enlazas la consulta con un DBGrid, verás que solo hay una columna, y el nombre de ella será por defecto Expr1 (si no me equivoco). El hecho de poner Count(*) as TotalDeRegistros, es para que en el dbgrid, el título de esa columna aparezca: TotalDeRegistros, repito, es solo un título para la columna.

Como tu le dices As A_BAJA y coincide con el nombre de un campo, te da el error que comentas.

Tienes 2 opciones:
Código Delphi [-]
 fdm.tbPer.SQL.Clear;
   fdm.tbPer.SQL.Text := 'select count(*) AS NRegistros from personal';
   fdm.tbPer.execute;
"NRegistros" no debe ser ningun campo de la tabla.


La otra opción, es simplemente quitarle el alias:
Código Delphi [-]
 fdm.tbPer.SQL.Clear;
   fdm.tbPer.SQL.Text := 'select count(*) from personal';
   fdm.tbPer.execute;

En ambos casos, lo que hace es contar el número de registros, sin importar lo que haya en cada columna de ese registro.

Existen casos especiales, cuando algunas columnas tienen valores nulos (null). Imagina el siguiente caso:

Código:
CampoTotal
          5
         30 
         null
Si ponemos SELECT COUNT(CAMPOTOTAL), nos devolverá 2 (los campos nulos no cuentan)

Si ponemos SELECT COUNT(*) nos devolverá 3 (si se cuenta los nulos)
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita