Utilize um group by na sua clausula SQL.
Até…
Utilize um group by na sua clausula SQL.
Até…
Ao utilizar group by e order by juntos você precisa especificar no seu select as colunas que serão utilizadas nessas cláusulas. E o group by vem antes do order by.
Segue exemplo:
select uf, razaosocial
from tb_parceiro
where uf = 'sp'
group by uf, razaosocial
order by razaosocial
Geralmente junto com o group by é utilizado uma função de agregação no select, exemplo, sum() ou count().
Poderia ser assim a sua consulta
select uf, count(razaosocial)
from tb_parceiro
where uf = 'sp'
group by uf
order by razaosocial
Irá listar a quantidade de razaosocial para cada uf, onde a uf seja ‘SP’.
Fiz um teste rápido aqui em banco Oracle e funciona:
Com order by:
select * from tabela order by campo;
CAMPO CAMPO1 CAMPO2
---------- ---------- ----------
0 3 4
1 1 2
2 2 2
56 77 88
100 4 5
5 rows selected.
Sem order by, lista na ordem dos inserts:
select * from tabela;
CAMPO CAMPO1 CAMPO2
---------- ---------- ----------
1 1 2
2 2 2
0 3 4
100 4 5
56 77 88
5 rows selected.
Coloquei um exemplo do meu problema.
Na minha busca ele vai buscar os cadastro em que "uf" é igual a SP mas, tenho 15 cadastro em na cidade de SP onde existem (2 sto andre), (2 SBC) e (11 de São paulo).
O println não pode repertir os valores, só pode mostrar 1 de cada... 1 de São Paulo, 1 de Sto Andre e 1 de São Bernardo.
Recupera dadosConnection con;
con = Conexao.abreConexao();
List<BeanSejaParceiro> beanSejaParceiro = new ArrayList<BeanSejaParceiro>();
PreparedStatement stmt = con.prepareStatement("select * from tb_parceiro where uf = 'SP' order by bairro");
while(rs.next()){
String razaoSocial = rs.getString("razaoSocial");
String nomeFantasia = (rs.getString("nomeFantasia");
String uf = rs.getString("uf");
String cidade = rs.getString("cidade"));
System.out.println(cidade);
}
Legal…
Deu um problema order by[color=red] /[/color] group by uf não funciona os dois… como teria que ser a linha?
select * from tb_parceiro where uf = 'sp' order by razaosocial group by uf;
vlw
Ele não busca na ordem do bairro e nem da erro… faz a busca normal, ele mostra na ordem de cadastro
con.prepareStatement("select * from tb_parceiro where uf like '%" + estado +"%' and cidade like '%" + cidade + "%' and bairro like '%" + bairro + "%' and ativa = 'sim' order by bairro" );
Quando eu mando direto no mysql funciona mas quando no cod java não executa na ordem
Pode ser Bug ?