Jump to content
Fórum Script Brasil
  • 0

Dúvida com consulta SQL


Diegomoco

Question

Boa tarde. Seguinte, tenho uma consulta:

SELECT SD2.D2_FILIAL, SD2.D2_TES, SD2.D2_COD, COUNT(SD2.D2_COD) AS CONTADOR

FROM SD2010 SD2

WHERE SD2.D2_EMISSAO BETWEEN '20110600' AND '20110999' AND

SD2.D_E_L_E_T_ <> '*' AND

SD2.D2_COD = '00385'

GROUP BY SD2.D2_FILIAL, SD2.D2_TES, SD2.D2_COD

Ela me retorna isso aqui:

D2_FILIAL D2_TES D2_COD CONTADOR

06 508 00385 2

06 907 00385 1

06 921 00385 51

01 537 00385 108

01 513 00385 124

01 905 00385 1

01 505 00385 173

Quero agora apenas os registros em negrito, que são os que mais tem ocorrência na filial (D2_FILIAL) pesquisada.

Alguma ideia de como fazer isso?

Link to comment
Share on other sites

3 answers to this question

Recommended Posts

  • 0

Boa tarde Diego,

Mas você quer apenas os dois maiores? Se for, desta forma abaixo deve dar. O problema é que se desejar uma quantidade X de resgistros a cada execução q realizar...

SELECT top 2 SD2.D2_FILIAL, SD2.D2_TES, SD2.D2_COD, COUNT(SD2.D2_COD) AS CONTADOR
FROM SD2010 SD2
WHERE SD2.D2_EMISSAO BETWEEN '20110600' AND '20110999' AND
SD2.D_E_L_E_T_ <> '*' AND
SD2.D2_COD = '00385'
GROUP BY SD2.D2_FILIAL, SD2.D2_TES, SD2.D2_COD
ORDER BY 4 desc

Link to comment
Share on other sites

  • 0
Boa tarde Diego,

Mas você quer apenas os dois maiores? Se for, desta forma abaixo deve dar. O problema é que se desejar uma quantidade X de resgistros a cada execução q realizar...

SELECT top 2 SD2.D2_FILIAL, SD2.D2_TES, SD2.D2_COD, COUNT(SD2.D2_COD) AS CONTADOR
FROM SD2010 SD2
WHERE SD2.D2_EMISSAO BETWEEN '20110600' AND '20110999' AND
SD2.D_E_L_E_T_ <> '*' AND
SD2.D2_COD = '00385'
GROUP BY SD2.D2_FILIAL, SD2.D2_TES, SD2.D2_COD
ORDER BY 4 desc

É na verdade eu não quero os dois maiores.

Eu quero o maior de cada filial.

Exemplo, tenho 10 filiais diferentes. Quero o maior da filial 1, o maior da filial 2....assim por diante.

Link to comment
Share on other sites

  • 0

Bom dia Diego,

Tente pegar o MAX do count que realiza. Como o campo SD2.D2_COD está no agrupamento, creio que deva funcionar...

SELECT SD2.D2_FILIAL, SD2.D2_TES, SD2.D2_COD, max(COUNT(SD2.D2_COD)) AS CONTADOR
FROM SD2010 SD2
WHERE SD2.D2_EMISSAO BETWEEN '20110600' AND '20110999' AND
SD2.D_E_L_E_T_ <> '*' AND
SD2.D2_COD = '00385'
GROUP BY SD2.D2_FILIAL, SD2.D2_TES, SD2.D2_COD

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...