Diegomoco Posted November 29, 2011 Report Share Posted November 29, 2011 Boa tarde. Seguinte, tenho uma consulta:SELECT SD2.D2_FILIAL, SD2.D2_TES, SD2.D2_COD, COUNT(SD2.D2_COD) AS CONTADORFROM SD2010 SD2WHERE 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_CODEla me retorna isso aqui:D2_FILIAL D2_TES D2_COD CONTADOR06 508 00385 206 907 00385 106 921 00385 5101 537 00385 10801 513 00385 12401 905 00385 101 505 00385 173Quero 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? Quote Link to comment Share on other sites More sharing options...
0 fulvio Posted November 29, 2011 Report Share Posted November 29, 2011 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 Quote Link to comment Share on other sites More sharing options...
0 Diegomoco Posted November 29, 2011 Author Report Share Posted November 29, 2011 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. Quote Link to comment Share on other sites More sharing options...
0 fulvio Posted December 1, 2011 Report Share Posted December 1, 2011 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 Quote Link to comment Share on other sites More sharing options...
Question
Diegomoco
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
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.