Diegomoco Postado Novembro 29, 2011 Denunciar Share Postado Novembro 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? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 fulvio Postado Novembro 29, 2011 Denunciar Share Postado Novembro 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 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Diegomoco Postado Novembro 29, 2011 Autor Denunciar Share Postado Novembro 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. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 fulvio Postado Dezembro 1, 2011 Denunciar Share Postado Dezembro 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 Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
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 para o comentário
Compartilhar em outros sites
3 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.