(Resolvido) retornar string em consulta , ajuda please


isso me retorna masc e fem agrupados com um numero cada mais preciso de um if e retornar

masc tem mais passageiros
como eu faço isso?
abc obrigado desde ja......

isso me retorna masc e fem agrupados com um numero cada mais preciso de um if e retornar

masc tem mais passageiros
como eu faço isso?
abc obrigado desde ja…

Isso é JPAQL ou consulta nativa?

Alguns SGBDs têm o recurso do TOP(X) (X é um número), que te retorna o número máximo de linhas da consulta. Assim, você consegue extrair só uma linha, contendo o sexo que tem mais registros…

[code]Na Linha de Comando Do Oracle eu digito aquela query e ele me Traz

Sexo COUNT M 10 F 15
eu queria fazer um

IF ( M > F ) Print ‘M viajou mais’

e Voltar no Console para mim

> M viajou mais

Você pode resolver isto utilizando o comando CASE-WHEN do Oracle, segue um link que ensina como mexer com ele

http://www.adp-gmbh.ch/ora/sql/case_when.html

E como você precisa dos 2 valores, tanto masculo, como feminino na mesma linha, então você vai precisar fazer um subSelect, ou então resolver isto com uma Stored Procedure, ou claro se puder fazer isto no java mesmo.

Caso não consiga resolver com o CASE-WHEN e SubSelect, retorne como tentou.

Att

Podes tentar algo assim:

Mas não vai dar certo para quando o número de M e F for o mesmo (vai dizer sempre que um deles viajou mais)

pergunta…

porque não simplesmente pegar só a primeira linha que retorna do banco?

[quote=asaudate]pergunta…

porque não simplesmente pegar só a primeira linha que retorna do banco?[/quote]

Pediram… fazer oq… koaskposa

Ae… Eu resolvi fazendo isso:

SELECT DISTINCT DECODE(GREATEST(maxF,maxM),maxF,'O Sexo Feminino viajou mais Vezes.',maxM,'O Sexo Masculino viajou mais Vezes.') "Resultado" FROM Passageiro,(SELECT COUNT(*) maxF FROM PASSAGEIRO WHERE SexoPassageiro = 'F'), (SELECT COUNT(*) maxM FROM PASSAGEIRO WHERE SexoPassageiro = 'M');

Mais tbm n funfa se for = a 0 eu acho.

obrigado a todos…