Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Roberta Schimidt

[Resolvido] Query com dois count e conduções diferentes

Recommended Posts

Boa Tarde,

eu tenho que fazer uma query onde tenho que mostrar, os cartões feitos e dessas cartões feitos quantos já foram aprovados

 

SELECT DISTINCT A.COD_LOCAL_CLIENTE LOCAL,  COUNT(*) AS CAPTADOS,
(SELECT COUNT(*)APROVADOS FROM DBO_CRE.dbo.CLIENTE_CRED_0117T WHERE 
IND_LIM_ZERADO = 'N'
AND DAT_INC >= convert(varchar(10),GETDATE(), 101))APROVADOS
FROM 
DBO_CRE.dbo.CLIENTE_CARTAO_CEV_0148T A
INNER JOIN DBO_CRE.dbo.CLIENTE_CRED_0117T B
ON
A.COD_LOCAL_CLIENTE = B.COD_LOCAL_CLIENTE AND
A.COD_CLIENTE = B.COD_CLIENTE AND
A.COD_LOCAL_CLIENTE < 500 AND
B.DAT_INC >= convert(varchar(10),GETDATE(), 101)
and substring(NUM_CARTAO_CEV, 1, 6) = '900001'
--AND IND_LIM_ZERADO = 'N'
GROUP BY A.COD_LOCAL_CLIENTE

 

Mas ao invés de aparecer o número de cartões aprovados para cada loja, aparece o total de registros agrupando todas as lojas.

Alguém pode me dar uma luz?

 

LOCAL       CAPTADOS    APROVADOS
----------- ----------- -----------
2           5           8
3           2           8
4           1           8
5           2           8
6           2           8
7           3           8
12          3           8
13          2           8

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente algo assim :

 

SELECT DISTINCT A.COD_LOCAL_CLIENTE LOCAL,  COUNT(*) AS CAPTADOS,
      sum(case when IND_LIM_ZERADO = 'N' then 1 else 0 end)  APROVADOS
FROM 
DBO_CRE.dbo.CLIENTE_CARTAO_CEV_0148T A
INNER JOIN DBO_CRE.dbo.CLIENTE_CRED_0117T B
ON
A.COD_LOCAL_CLIENTE = B.COD_LOCAL_CLIENTE AND
A.COD_CLIENTE = B.COD_CLIENTE AND
A.COD_LOCAL_CLIENTE < 500 AND
B.DAT_INC >= convert(varchar(10),GETDATE(), 101)
and substring(NUM_CARTAO_CEV, 1, 6) = '900001'
--AND IND_LIM_ZERADO = 'N'
GROUP BY A.COD_LOCAL_CLIENTE

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente algo assim :

 

SELECT DISTINCT A.COD_LOCAL_CLIENTE LOCAL,  COUNT(*) AS CAPTADOS,
      sum(case when IND_LIM_ZERADO = 'N' then 1 else 0 end)  APROVADOS
FROM 
DBO_CRE.dbo.CLIENTE_CARTAO_CEV_0148T A
INNER JOIN DBO_CRE.dbo.CLIENTE_CRED_0117T B
ON
A.COD_LOCAL_CLIENTE = B.COD_LOCAL_CLIENTE AND
A.COD_CLIENTE = B.COD_CLIENTE AND
A.COD_LOCAL_CLIENTE < 500 AND
B.DAT_INC >= convert(varchar(10),GETDATE(), 101)
and substring(NUM_CARTAO_CEV, 1, 6) = '900001'
--AND IND_LIM_ZERADO = 'N'
GROUP BY A.COD_LOCAL_CLIENTE

 

Muitoo obrigada... !!! Era o que eu queria...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.