Ir para conteúdo
Fórum Script Brasil
  • 0

Como usar Order By - Muito Complicado.


wdsistemas

Pergunta

Olá, estou com um problema grande para resolver e gostaria de uma ajuda.

Segue o problema.

Existe uma tabela chamada "produtos", onde contem os campos (quantidade, situacao). Logico que contem mais campos porem o probme aestá com estes dois (quantidade, situacao) na hora de ordenar.

Vamos ao principal.

* Campo (quantidade): Inteiro que recebe a quantidade de produtos.

* Campo (situacao): Inteiro que recebe (0) para produtos em prevenda (1) para produtos sob-encomenda e (2) para produtos com estoque normal.

Ai que está problema, na ordenação que preciso, que por vez seria esta:

1) Primeiramente aparecer todos os produtos que está na situação (2 - estoque normal por data descrecente), porem apenas os que tem mais que 0 no campo quantidade.

2) Aparecer após os produtos com situação (0 - produtos em prevenda por data descrecente)

3) Aparecer produtos para com situação (1 - produtos sub-encomenda).

É esse o problema, preciso jogar todos produtos esgotados por final, porem se der um Order By primeiramente no campo quantidde, irá aparecer no meio os produtos de situação diferentes.

Pensei em fazer isso:

Select * From produtos Order By situacao=2 DESC, produto.situacao=0 DESC, produto.situacao=1 DESC, data_prevenda ASC

O problema é que quando jogo (produto.situacao=2) ele mostrará todos produtos com situação 2, inclusive os que tem quantidde 0.

Então a duvida maior seria em como jogar todos produtos que está com quantidade 0 por ultimo, mas tem que aparecer primeiros os produtos que tem quantidade maior que 0 e ordenado pela sitação.

Seria amis ou menos isso na teria, mas seiq ue não da pra usar Where dentro do order by:

... Order By situacao=2 (where quantidade > 0), situacao=0 (where quantidade > 0) ...

Alguém pode me dar uma luz, pois ta complicado.

Agradeço a atenção de todos.

Rodrigo.

Editado por Denis Courcy
Titulo Modificado. Ver regra 3.6
Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Grande Kakao, muito obrigado mesmo pela força.

Realmente funcionou como deveria, porem se não for abusar muito, segue outra dúvida baseado em cima disso mesmo:

Do modo que você fez dfuncionou sem problemas nenhum, porem preciso agora que aconteceça quase a mesma coisa, ou seja:

*** Preciso que mostre os registros por ordem (precovenda), porem os esgotados (quantidade) ficaram por ultimo, entendeu?

Ou seja, primeiro tenho que ordenar os protudos por preço (somente aparendo os que tem em estoque) e os que não tem em estoque ficam por ultimo independente do valor.

O modelo anterior que me passou é se a pessoa escolher uma bsuca normal, já´essa citada agora é caso a pessoa escolha por preço.

Tentei usar Select * from produtos Order By precovenda ASC, quantidade Desc, porem essa consulta mostra no meio os produtos com quantidade 0.

valeu desde já pela ajuda.

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...