Como usar Count no Where
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
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
Matheus Luis
Curtidas 0
Respostas
Alexandre Deus
08/08/2019
Matheus tente o seguinte
Responde aí caso tenha resolvido.
Um abraço!
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!
GOSTEI 0
Alex William
08/08/2019
Ja tentou:
Acredito que desta forma ele conte os registros da sua subquery para verificar quantos registros ela retorna.
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.
GOSTEI 0
Emerson Nascimento
08/08/2019
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
GOSTEI 0