Power Builder - Consulta SQL

 
Vista:

Consulta SQL

Publicado por Victor German (25 intervenciones) el 28/08/2008 00:12:42
Que tal,

Necesito hacer una consulta que me diga cuantos registros aparecen una cantidad de veces determinada, por ejemplo: se encontraron 100 registros de los que aparecen 3 veces cada uno.
alguna idea??, he intenado con having pero no me da el resulado que necesito, me entrega un listado y necesito el total.

Una consulta funcionado es la siguiente:

SELECT COUNT(id_referencia) AS total
FROM (SELECT id_referencia, COUNT(id_referencia) AS tot_id FROM gestion GROUP BY id_referencia)
AS derivedtbl_1 WHERE (tot_id = 3)

pero la necesito mas o menos asi:
SELECT COUNT(ID_REFERENCIA)
INTO :ll_conteo_avance
FROM (SELECT ID_REFERENCIA, COUNT(ID_REFERENCIA) //AS TOT_ID
FROM GESTION
GROUP BY ID_REFERENCIA ) //AS DERIVEDTBL_1
WHERE (NUMERO_REMESA = :li_remesa AND CICLO = :ls_ciclo AND COUNT(ID_REFERENCIA) = :li_vuelta ))
WHERE (COUNT(ID_REFERENCIA) = :li_vuelta )

USING SQLCA;
a la consulta le voy a entregar 3 valores para que me de el resultado

Tengo problemas en el where, pero no se como solucionarlo
Agradezco de antemano su interes

gracias !
saludos !!
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:Consulta SQL

Publicado por Miguel Salvador (7 intervenciones) el 05/09/2008 23:07:36
Hola :

Segun lo que te he entendido, espero el ejemplo se adecue a lo que quieres:

En un escenario en que tu empresa haces credito, y quieres saber cuales son los que tienen 2 creditos:
Seria sencillamente asi

select id_cliente , count(*) cantidad from cabcredito group by id_cliente having count(*) = 2

hasta alli te dice cuales son los cliente que tienen dos creditos, si quieres tener la lista de cuales son estos clientes, le haces sl join con tu tabla de clientes nomas, de la siguiente forma:

select a.*
from mascliente a, (select id_cliente , count(*) cantidad from cabcredito group by id_cliente having count(*) = 2) b
where a.id_cliente = b.id_cliente

bueno y si quieres saber solo la cantidad reemplazas el a.* por el count(*)

select count(*)
from mascliente a, (select id_cliente , count(*) cantidad from cabcredito group by id_cliente having count(*) = 2) b
where a.id_cliente = b.id_cliente

Espero te haya servido.

Saludos
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