Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Mário Monteiro

order by ...

Recommended Posts

Galera tou em duvida numa SQL aqui...Como organizo pela quantidade de vezes que uma situação ocorre...Não é organizar por campo e sim pela quantidade de ocorrencias...

Compartilhar este post


Link para o post
Compartilhar em outros sites

você usa na SQL um contador para isso? se sim creio que é só você mandar ordenar pelo Alias dele. algo +/- assim:

Select *, Count(campo) as Alias_contador From tabela Where campotal = tal Order By Alias_contador; 

Compartilhar este post


Link para o post
Compartilhar em outros sites

não uso salgado...seleciono tudo de uma tabela que serve tipo como um historico ela tem um campo que só pode ser 1 ou 0, um campo data e uma chave estrageira, e cada vez que altero este camppo gero um novo registro apenas com este campo alterado. preciso organizar pela quantidade de vezes que aparece o numero 1 pra esta chave estrageira...PS: ta tudo rolando beleza, só não tou conseguindo dar um jeito de organizar por quantidade de registros...

Compartilhar este post


Link para o post
Compartilhar em outros sites

não tem como colocar por ALIAS!! ele dá pau... pelo menos deu comigo... tente assim

 

 

ASP [/tr][tr]SELECT CAMPO1, CAMPO2 FROM TABELA ORDER BY COUNT(CAMPO1) ASC[/tr]

 

falows

Compartilhar este post


Link para o post
Compartilhar em outros sites

não tem como colocar por ALIAS!! ele dá pau... pelo menos deu comigo... tente assim

 

 

[tr][/tr][tr][/tr]
ASP SELECT CAMPO1, CAMPO2 FROM TABELA ORDER BY COUNT(CAMPO1) ASC

 

falows

cara ainda não testei mas...

 

tem certeza que rola??

 

tem que contar apenas os que tem 1 no campo e não todos os registros...

 

Acho que vou acabar tendo que criar um contador alem deste historico, mas não queria fazer isso...

Compartilhar este post


Link para o post
Compartilhar em outros sites

pera ai... você quer selecionar todos os registros mas saber a contagem de registros igual a 1 e 0??explica melhor aifalows

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara como disse acima já tou achando mais simples criar um campo só com o caontador...Mas vamos lá...tenho uma tabela que tem seus registros e tal, mas estes registros são como processo, tem varios tramites, ou seja seu estado pode ficar mudando, se fosse apenas pra fazer isto bastava o update, mas tem que existir um historico das ações feitas...Bem tudo ta funcionando, o que quero é colocar opções de ordenação dos relatórios, e uma delas é por suspenções (o numero 1 naquele campo), ou seja preciso saber qual a ordem dos registros tem mais suspensões e ordenar, mas não consegui... se tiver algum jeito de fazer, beleza, pois não preciso criar um campo contador...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que resolvi o problema

 

Criei um banco de dados com a seguinte estrutura:

 

Tabela1 (idTabela1, campo11)

Tabela2 (idTabela2,idTabela2,Campo0ou1)

 

O azul é a chave estrangeira da Tabela2 pra Tabela1.

 

O Campo Campo0ou1 da tabela 2 é aquele que eu vou unir e colocar em ordem.

 

SELECT Tabela1.idTabela1, Count(Tabela1.idTabela1) AS ContarDeidTabela

FROM Tabela1 INNER JOIN Tabela2 ON Tabela1.idTabela1 = Tabela2.idTabela1

GROUP BY Tabela1.idTabela1, Tabela2.Campo0ou1

HAVING (((Tabela1.idTabela1) In (SELECT Tabela1.idTabela1 FROM Tabela1 Order by Tabela1.idTabela1 Asc)) AND ((Tabela2.Campo0ou1)=1));

Observe que como o Select interno vai ser devolvido ordenado, não vou precisar reordenar a saída.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que resolvi o problema

 

Criei um banco de dados com a seguinte estrutura:

 

Tabela1 (idTabela1, campo11)

Tabela2 (idTabela2,idTabela2,Campo0ou1)

 

O azul é a chave estrangeira da Tabela2 pra Tabela1.

 

O Campo Campo0ou1 da tabela 2 é aquele que eu vou unir e colocar em ordem.

 

 

 

SELECT Tabela1.idTabela1, Count(Tabela1.idTabela1) AS ContarDeidTabela

FROM Tabela1 INNER JOIN Tabela2 ON Tabela1.idTabela1 = Tabela2.idTabela1

GROUP BY Tabela1.idTabela1, Tabela2.Campo0ou1

HAVING (((Tabela1.idTabela1) In (SELECT Tabela1.idTabela1 FROM Tabela1 Order by Tabela1.idTabela1 Asc)) AND ((Tabela2.Campo0ou1)=1));

Observe que como o Select interno vai ser devolvido ordenado, não vou precisar reordenar a saída.
Valew Ulisses, mas como não tou muito afim agora, amanhâ testo e se funcionar posto aqui...

 

A ideia entendi e achei bacana...

 

Se não funcionar vou acrescentar mais um campo mesmo, mas não quero fazer isso, então amanhã digo o que rolou

Compartilhar este post


Link para o post
Compartilhar em outros sites

só vai ser estranho, pois tinha pensado em usar um order by passando o campo como parametro, e assim vou ter que fazer um IF só pra este caso, mas se funcionar beleza, pois não quero criar mais um campo, já está virando obcessão, eheeh...

Compartilhar este post


Link para o post
Compartilhar em outros sites

não funcionou, alterei pros nomes certos e não rolou, é ...O campo Contador vai nascer...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ops, cometi um erro no esquema das tabelas, mas acho que isso tu já deves ter visto.

 

 

Tabela1 (idTabela1, campo11)

Tabela2 (idTabela2,idTabela1,Campo0ou1)

 

E realmente eu confundi, acabei ordenando pela chave, mas vê se esse funciona.

 

SELECT Tabela1.idTabela1, Count(Tabela1.idTabela1) AS ContarDeidTabela

FROM Tabela1 INNER JOIN Tabela2 ON Tabela1.idTabela1 = Tabela2.idTabela1

GROUP BY Tabela1.idTabela1, Tabela2.Campo0ou1

HAVING (((Tabela1.idTabela1) In (SELECT Tabela1.idTabela1 FROM Tabela1 Order by Tabela1.idTabela1 Asc)) AND ((Tabela2.Campo0ou1)=1)) ORDER BY Count(Tabela1.idTabela1) desc, Tabela1.idTabela1;

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.