SQL - select count

 
Vista:

select count

Publicado por anonimo (4 intervenciones) el 09/08/2004 20:03:15
Una tabla tiene las columnas EMPRESA, DELEGACION, CLIENTE.
Un select count(distinct cliente) da los clientes distintos que hay en la tabla.
Pero como hacer para saber los clientes distintos que hay dentro de cada nivel EMPRESA / DELEGACION.
EL concatenado select count(distinct empresa||delegacion||cliente) no me lo permite dando error de sintaxis
Estoy con Informix
Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:select count

Publicado por Atag (10 intervenciones) el 10/08/2004 09:45:27
Hola, tienes que agrupar por esos campos y hacer entonces el count:

Select EMPRESA, DELEGACION, count(*)
from TABLA
group by EMPRESA, DELEGACION

Por lo menos en Oracle ;)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:select count

Publicado por anonimo (4 intervenciones) el 10/08/2004 11:23:09
hola, gracias por tu pronta respuesta
Esto me dara un registro por cada combinacion de empresa/delegacion con el numero de clientes que hay.
No puedo procesar este select porque me da varias filas (logico, una por cada combinacion empresa,delegacion)
Necesito una sola fila con el total de clientes, y el cliente depende de la delegacion y de la empresa.
EMPRESA DELEGACION CLIENTE
A 1 1
A 2 1
B 1 1
B 2 1
pues son cuatro clientes distintos

Sigo peleandome.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:select count

Publicado por Atag (10 intervenciones) el 10/08/2004 11:55:10
Si te digo la verdad sigo sin entenderte bien entonces.

¿Quieres que te devuelva una fila por cada EMPRESA/DELEGACION o sólo una fila en total?, intenta explicarmelo de otra forma y seguro que entre los dos lo sacamos.

Hasta ahora
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:select count

Publicado por anonimo (4 intervenciones) el 10/08/2004 12:40:10
en el ejemplo de antes, querria que me devolviera una sola fila con el contador a cuatro(4)
es decir la cantidad de clientes distintos que hay,
teniendo en cuenta que el codigo de cliente 1 de la delegacion x, empresa y, es distinto que el codigo de cliente 1 de otra delegacion y/o empresa.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:select count

Publicado por Atag (10 intervenciones) el 10/08/2004 13:19:07
Ah ya, ahora lo entiendo, he probado en oracle la sentencia que decías que daba error y si que funciona, y probando la equivalente en SQL Server también funciona. Supongo entonces que Informix no permite esto.

Lo primero que se me ocurrió fue hacer simplemente el

Select count(*)
from ...

y eso devuelve el numero de filas con todos los campos distintos no?, pero supongo que tus tablas tendrán mas campos que estos y por eso no lo puedes hacer así ¿me equivoco?, entonces una solución sería hacer una select anidada, sacar primero los tres campos SIN REPETIR, y hacer luego la cuenta no?

SELECT COUNT(*) AS CUANTOS
FROM (SELECT empresa, delegacion, cliente
FROM t1
GROUP BY EMPRESA, DELEGACION, CLIENTE) DERIVADA

a ver si es lo que quieres, si no seguiremos intentandolo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:select count

Publicado por anonimo (4 intervenciones) el 11/08/2004 10:17:00
a ver, si avanzo
1) ¿cual es la sentencia tal cual te funciona a ti en Oracle?
2) el select anidado que me pones no lo entiendo. ¿un select para definir el from?

gracias por tu paciencia
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:select count

Publicado por Atag (10 intervenciones) el 11/08/2004 10:31:33
1)
select count(distinct empresa || delegacion || cliente )
from t1

2)
eso se puede hacer, al fin y al cabo una select devuelve una tabla
con varios campos no?, y un from necesita una tabla , pues es lo
mismo.

Aqui ando, ya me dirás si avanzas. Si prefieres mandarme un correo hazlo. Hasta luego
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar