Olá comunidade,

 

Tenho o seguinte SELECT e gostaria de otimizá-lo. Eis o mesmo:

 

SELECT A.eq, B.id_eq, B.unidade, B.tensao_equip, B.nominal, 

(SELECT MAX(Y.VALOR) FROM PAS_R X, bhpas_h_2009_05_01 Y WHERE 
X.BH_CHAVE=Y.BH_CHAVE AND Y.BH_CHAVE = (SELECT BH_CHAVE FROM PAS_R WHERE ID = 
B.id_eq AND bh_dthr_fim IS NULL))  AS maximo, 

(SELECT MAX(Y.VALOR) FROM PAS_R X, bhpas_h_2009_05_01 Y WHERE 
X.BH_CHAVE=Y.BH_CHAVE AND Y.BH_CHAVE = (SELECT BH_CHAVE FROM PAS_R WHERE ID = 
B.id_eq AND bh_dthr_fim IS NULL))/B.nominal)*100 AS AS Percent, 

CAST('2009_05_01' as DATE) as Data

FROM "EQUIPAMENTOS" AS A, "IDS_EQUIPAMENTOS" AS B, "RELATORIOS_EQUIPAMENTOS" AS 
C WHERE A.eq = B.eq AND A.eq=C.eq AND C.nome_relatorio='ICE' ORDER BY percent 
DESC;

 

**** (SELECT MAX(Y.VALOR) FROM PAS_R X, bhpas_h_2009_05_01 Y WHERE 
X.BH_CHAVE=Y.BH_CHAVE AND Y.BH_CHAVE = (SELECT BH_CHAVE FROM PAS_R WHERE ID = 
B.id_eq AND bh_dthr_fim IS NULL))  AS Maximo

O sub-select acimal calcula um determinado valor Maximo; tenho também que 
mostrar em outra coluna o percentual obtido, o qual é o (Maximo/nominal)*100; 
Para rodar, estou tendo que executar duas vezes o mesmo sub-select que retorna 
o mesmo resultado para mostrar os dados que são necessários e isso tem deixado 
a consulta lenta.

 

Gostaria de ficasse assim: 

 

SELECT A.eq, B.id_eq, B.unidade, B.tensao_equip, B.nominal, 

(SELECT MAX(Y.VALOR) FROM PAS_R X, bhpas_h_2009_05_01 Y WHERE 
X.BH_CHAVE=Y.BH_CHAVE AND Y.BH_CHAVE = (SELECT BH_CHAVE FROM PAS_R WHERE ID = 
B.id_eq AND bh_dthr_fim IS NULL))  AS maximo, 

(maximo/B.nominal)*100 AS AS Percent,  

CAST('2009_05_01' as DATE) as Data

FROM "EQUIPAMENTOS" AS A, "IDS_EQUIPAMENTOS" AS B, "RELATORIOS_EQUIPAMENTOS" AS 
C WHERE A.eq = B.eq AND A.eq=C.eq AND C.nome_relatorio='ICE' ORDER BY percent 
DESC;

 

Porém quando eu executo dessa forma o seguinte erro é exibido:

ERRO:  coluna "maximo" não existe

LINE 5: (maximo/B.nominal)*100 AS Percent,  

         ^

 

Fico no aguardo.

Newton Teixeira do Nascimento Junior Analista de Sistemas - CMAO
e-mail: [email protected]

 



<html>
<body>
<font face = "arial" size = "1" color = "#000080">Aviso:<br>"O emitente desta 
mensagem &eacute; respons&aacute;vel por seu conte&uacute;do e 
endere&ccedil;amento. Cabe ao destinat&aacute;rio cuidar quanto ao tratamento 
adequado. Sem a devida autoriza&ccedil;&atilde;o, a divulga&ccedil;&atilde;o, a 
reprodu&ccedil;&atilde;o, a distribui&ccedil;&atilde;o ou qualquer outra 
a&ccedil;&atilde;o em desconformidade com as normas internas da ELETRONORTE S/A 
s&atilde;o proibidas e pass&iacute;veis de san&ccedil;&atilde;o disciplinar, 
c&iacute;vel e criminal. Esta mensagem pode ser monitorada".
</font>
</body>
</html>
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a