Como usar Count no Where

08/08/2019

10

Em resumo preciso contar a quantidade de registros (CODIGO), para saber se a registro na data informada e quantos são.

select
CO.DT_ABERTURA,
CO.DT_FECHAMENTO,
CO.PDV,
CO.FECHADO,
CO.VLR_ABERTURA,
BB.TOTAL_LIQUIDO,
FP.FORMA_PAG
from FN_CAIXA_OPERADOR CO
join BCA_BILHETE BB on BB.EMPRESA = CO.EMPRESA and BB.CAIXA_OPERADOR = CO.CODIGO
join BCA_BILHETE_FORMA_PGTO FP on FP.EMPRESA = BB.EMPRESA and FP.CODIGO = BB.CODIGO
where CO.EMPRESA = :EMPRESA and
((CO.DT_ABERTURA >= :DT_ABERTURA) and
(CO.DT_FECHAMENTO <= :DT_FECHAMENTO)) and
>>>>>>(count(BB.CODIGO) = 0)<<<<<< Estou com problema nesta linha
Responder

Posts

08/08/2019

Alexandre Deus

Matheus tente o seguinte
SELECT CO.DT_ABERTURA,
CO.DT_FECHAMENTO,
CO.PDV,
CO.FECHADO,
CO.VLR_ABERTURA,
BB.TOTAL_LIQUIDO,
FP.FORMA_PAG,
COUNT(BB.CODIGO)
from FN_CAIXA_OPERADOR CO
join BCA_BILHETE BB on BB.EMPRESA = CO.EMPRESA and BB.CAIXA_OPERADOR = CO.CODIGO
join BCA_BILHETE_FORMA_PGTO FP on FP.EMPRESA = BB.EMPRESA and FP.CODIGO = BB.CODIGO
where CO.EMPRESA = :EMPRESA and
((CO.DT_ABERTURA >= :DT_ABERTURA) and
(CO.DT_FECHAMENTO <= :DT_FECHAMENTO)) and
BB.CODIGO = 0


Responde aí caso tenha resolvido.
Um abraço!
Responder

08/08/2019

Alex William

Ja tentou:

SELECT COUNT(*) FROM
(
select
CO.DT_ABERTURA,
CO.DT_FECHAMENTO,
CO.PDV,
CO.FECHADO,
CO.VLR_ABERTURA,
BB.TOTAL_LIQUIDO,
FP.FORMA_PAG
from FN_CAIXA_OPERADOR CO
join BCA_BILHETE BB on BB.EMPRESA = CO.EMPRESA and BB.CAIXA_OPERADOR = CO.CODIGO
join BCA_BILHETE_FORMA_PGTO FP on FP.EMPRESA = BB.EMPRESA and FP.CODIGO = BB.CODIGO
where CO.EMPRESA = :EMPRESA and
((CO.DT_ABERTURA >= :DT_ABERTURA) and
(CO.DT_FECHAMENTO <= :DT_FECHAMENTO))
) FOO


Acredito que desta forma ele conte os registros da sua subquery para verificar quantos registros ela retorna.
Responder
tente:
select
	CO.DT_ABERTURA,
	CO.DT_FECHAMENTO,
	CO.PDV,
	CO.FECHADO,
	CO.VLR_ABERTURA,
	BB.TOTAL_LIQUIDO,
	FP.FORMA_PAG,
	COUNT(BB.CODIGO) QTDCOD
from
	FN_CAIXA_OPERADOR CO
left join BCA_BILHETE BB on
	BB.EMPRESA = CO.EMPRESA and BB.CAIXA_OPERADOR = CO.CODIGO
left join BCA_BILHETE_FORMA_PGTO FP on
	FP.EMPRESA = BB.EMPRESA and FP.CODIGO = BB.CODIGO
where
	CO.EMPRESA = :EMPRESA and
	((CO.DT_ABERTURA >= :DT_ABERTURA) and
	(CO.DT_FECHAMENTO <= :DT_FECHAMENTO))
group by
	CO.DT_ABERTURA,
	CO.DT_FECHAMENTO,
	CO.PDV,
	CO.FECHADO,
	CO.VLR_ABERTURA,
	BB.TOTAL_LIQUIDO,
	FP.FORMA_PAG
Responder