Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 03-05-2004
hook hook is offline
Miembro
 
Registrado: abr 2004
Posts: 67
Poder: 21
hook Va por buen camino
sentencia count().....

Necesito hacer una sentencia en sql para que me cuente el nº de pc´s que tengo infectados y hay muchos repetidos, si pongo "select distinct pc from servers" me muestra los pc sin repetir (ok, unos 80 mas o menos) y si pongo "select distinct count(pc) as numpc from...." me cuenta todos(1350), cuando yo lo q quiero es q me cuente todos pero solo una vez los repetidos(80)...
Si pongo "select count(pc) as numpc from servers group by pc" me cuenta 5, no lo entiendo , q hago mal....

Un saludo, Gracias.
Responder Con Cita
  #2  
Antiguo 03-05-2004
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 24
guillotmarc Va por buen camino
Hola.

Prueba:

select count(distinct pc) as numpc from servers

Saludos
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
Responder Con Cita
  #3  
Antiguo 03-05-2004
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.954
Poder: 27
delphi.com.ar Va camino a la fama
Código SQL [-]
SELECT COUNT(DISTINCT PC)
FROM SERVERS

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #4  
Antiguo 03-05-2004
hook hook is offline
Miembro
 
Registrado: abr 2004
Posts: 67
Poder: 21
hook Va por buen camino
Gracias por contestar tan rapido pero no me funciona me da este error:

[Microsoft][Controlador ODBC Microsoft Access] Error de sintaxis (falta operador) en la expresion de consulta 'count(distinct pc)'

La consulta es la siguiente -->select count(distinct pc) as num_pc from servers_enero

Que ourre!!!!!!!!!!
Responder Con Cita
  #5  
Antiguo 03-05-2004
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 24
guillotmarc Va por buen camino
Hola.

No todas las bases de datos/servidores sql, soportan completmente la sintaxis de SQL. Parece ser que Access no acepta este tipo de consultas.

La primera solución que se me ocurre, es ayudarte con una vista, es decir creas una vista del tipo :
select distinct pc from servers_enero

Entonces la consulta ya queda simplemente :
select count(*) from mi_vista

Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
Responder Con Cita
  #6  
Antiguo 04-05-2004
hook hook is offline
Miembro
 
Registrado: abr 2004
Posts: 67
Poder: 21
hook Va por buen camino
Gracias por la ayuda, pero.... como se crea una vista??? Nunca he creado una vista y no se como se hace...

Un saludo, Gracias.
Responder Con Cita
  #7  
Antiguo 04-05-2004
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 25
__cadetill Va por buen camino
El formato para crear una vista seria algo más o menos así

Código SQL [-]
create view new_view ( _fields_ )
as
select _fields_ from _table_name_
where _conditions_
Responder Con Cita
  #8  
Antiguo 04-05-2004
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 24
guillotmarc Va por buen camino
Hola.

Cuando abres Access, entras por defecto en la opción de Tablas, cambia a la de Consultas (el nombre que usa para las vistas), Dále a Crear una nueva Vista en Diseño, y te aparecerá un asistente para crear la vista. El primer botón de la barra de herramientas, te permitirá cambiar de Vista Diseño a Vista SQL. En Vista SQL podrás escribir la consulta (en lugar de usar el asistente gráfico).

Una vez tengas almacenada la consulta (vista), la podrás usar como si fuera otra tabla.

Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
Responder Con Cita
  #9  
Antiguo 04-05-2004
Avatar de javiermorales
javiermorales javiermorales is offline
Miembro
 
Registrado: may 2003
Ubicación: Alicante
Posts: 272
Poder: 22
javiermorales Va por buen camino
Otra forma sería utilizar una sql intermedia, a la que llamas por ejemplo AUX.
Código:
SELECT DISTINCT PC AS UNICOS
FROM SERVERS
y luego utilizas esa intermedia para obtener los datos
Código:
SELECT COUNT(UNICOS) AS NUMPC
FROM AUX
Espero que te sirva. Un saludo.
__________________
Se hace lo que se puede que siempre es menos de lo que se dice
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 01:39:05.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi