Jump to content

duvida em sql oracle


iniciante
 Share

Recommended Posts

boas pessoal

eu tou a tentar fazer um select a algumas tabelas e queria fazer o seguinte.

eu quero fazer sum(peso) e na coluna seguinte do mesmo select quero fazer um case when sum(peso)>10 then "peso a mais".

bem simplificando a confusão que aqui tenho eu queria fazer algo deste genero:

select peso, sum(peso) , case when sum(peso)>1o then "peso a mais" else "peso bom" end

from pessoa

group by peso , case when sum(peso)>1o then "peso a mais" else "peso bom" end

o problema aqui é que eu sei que o sum nao pode estar no group by..mas ja tou farto de dar voltas e nao consigo chegar aquilo que quero =/

RC

Link to comment
Share on other sites

O facto de estares a fazer Select ao peso e ao sum(peso) não faz sentido.

"Give a man a fish and he will eat for a day; Teach a man to fish and he will eat for a lifetime. The moral? READ THE MANUAL !"

Sign on a computer system consultant's desk

Link to comment
Share on other sites

sim eu sei..esse select que eu pus foi so mesmo um exemplo para expor a minha duvida porque o select do meu trabalho é um bucadinho maior e mais complexo xD mas pronto imagina assim entao:

select nome, sum(peso) , case when sum(peso)>1o then "peso a mais" else "peso bom" end

from pessoa

group by nome , case when sum(peso)>1o then "peso a mais" else "peso bom" end

RC

Link to comment
Share on other sites

Nops. O que ele quer dizer é teres algo como

select nome, pesoTotal, case when pesoTotal >10 then "peso a mais" else "peso bom" end
From (Select nome, sum(peso) as pesoTotal
   From pessoa
   Group by nome)

Mas podes fazer perfeitamente como

SELECT nome, sum(peso)
      , case when sum(peso) > 10 then "peso a mais" else "peso bom" end
From pessoa
group by nome

"Give a man a fish and he will eat for a day; Teach a man to fish and he will eat for a lifetime. The moral? READ THE MANUAL !"

Sign on a computer system consultant's desk

Link to comment
Share on other sites

Eu experimentei e a mim deu bem. Será que o erro não está noutro lado?

"Give a man a fish and he will eat for a day; Teach a man to fish and he will eat for a lifetime. The moral? READ THE MANUAL !"

Sign on a computer system consultant's desk

Link to comment
Share on other sites

Eu experimentei e a mim deu bem. Será que o erro não está noutro lado?

Ups, afinal estava a testar em MySQL.

Estava a usar o SQLzoo para testar e sem querer usei o MySQL. Infelizmente para Oracle está a dar erro de sistema e não consigo testar de momento. Portanto é possível que a query dada em cima não funcione.

"Give a man a fish and he will eat for a day; Teach a man to fish and he will eat for a lifetime. The moral? READ THE MANUAL !"

Sign on a computer system consultant's desk

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.