Faz uma filtragem no Agrupamento dos dados
Exemplo da Rotina:
SELECT ... GROUP BY [Campos] HAVING [Condição]
Exemplo 1- Trazendo todos os dados que tem mais de um registro:
SELECT
B2_COD AS PRODUTO,
COUNT(B2_LOCAL) AS ARMAZENS,
SUM(B2_QATU) AS SALDO
FROM
SB2010 SB2
WHERE
B2_FILIAL = '01'
AND SB2.D_E_L_E_T_ = ' '
GROUP BY
B2_COD
HAVING
COUNT(B2_LOCAL) >= 2
Exemplo 2- Trazendo registros que tiveram mais de 50 itens:
SELECT
C5_NUM AS PEDIDO,
COUNT(C6_ITEM) AS ITENS,
SUM(C6_VALOR) AS VALOR
FROM
SC5010 SC5
INNER JOIN SC6010 SC6 ON (
C6_FILIAL = C5_FILIAL
AND C5_NUM = C6_NUM
AND SC6.D_E_L_E_T_ = ' '
)
WHERE
C5_FILIAL = '01'
AND C5_EMISSAO >= '20190601'
AND C5_EMISSAO <= '20190630'
AND SC5.D_E_L_E_T_ = ' '
GROUP BY
C5_NUM
HAVING
COUNT(C6_ITEM) >= 50
Exemplo 3- Trazendo dados agrupados, somente com os preços maiores que 500.000:
SELECT B1_DESC CARRO, MAX(B1_PRV1) VALOR FROM SB1990 GROUP BY B1_DESC HAVING MAX(B1_PRV1) > 500000
Observações:
- Caso tenha dúvidas ou problemas com os exemplos, entre em contato;
- Se tiver sugestões de rotinas, pode entrar em contato;
- Exemplo 3 enviado por Caio Henrique;