Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   sentencia count()..... (https://www.clubdelphi.com/foros/showthread.php?t=9820)

hook 03-05-2004 17:43:55

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.

guillotmarc 03-05-2004 17:51:41

Hola.

Prueba:

select count(distinct pc) as numpc from servers

Saludos

delphi.com.ar 03-05-2004 17:51:59

Código SQL [-]
SELECT COUNT(DISTINCT PC)
FROM SERVERS

Saludos!

hook 03-05-2004 18:06:01

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!!!!!!!!!!

guillotmarc 03-05-2004 21:30:51

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.

hook 04-05-2004 09:22:56

Gracias por la ayuda, pero.... como se crea una vista??? Nunca he creado una vista y no se como se hace...

Un saludo, Gracias.

__cadetill 04-05-2004 10:13:08

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_

guillotmarc 04-05-2004 10:32:40

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.

javiermorales 04-05-2004 14:53:04

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.


La franja horaria es GMT +2. Ahora son las 07:00:32.

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