Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Olá,
estou com o seguinte problema:
fiz uma tabela simples com dimensão sendo a data, em uma das expressões fiz um Max( ) e na outra expressão precisava pegar o valor de outro dado (mesma linha) que possui o Max daquele dia.
Obrigada!
Usa o nome da outra expressão... para não precisar repetir a expressão inteira...
ex:
nome: UltimoDia
expressão: max(Dia)
Nome:
Expressão: if (UltimoDia = 5 , ...)
Se você for trabalhar com a idéia de uma condição onde "Dia = UltimoDia" e o último dia for variável dependendo da dimensão, como no caso de uma dimensão mês, onde vc teria 39, 30 ou 31 como ultimo dia. Sugiro então utilizar essa condição dentro de um IF e não no set analysis....
Obrigada Rodrigo,
mas vou exemplificar aqui o que não consigo fazer:
no meu banco tenho dados de temperatura de uma cidade separados por dia e hora de ocorrência.
Na minha tabela eu agrupo por dia e na temperatura mostro apenas a máxima de cada dia, porém preciso também mostrar a hora que essa máxima ocorrreu no dia.
Por exemplo:
No banco
Dia Hora Temperatura
01/01/2012 1 20,6
01/01/2012 2 20,5
...
01/01/2012 23 22,2
01/01/2012 24 21,5
02/01/2012 1 21,0
...
Na tabela simples coloco:
Dia Temp. Máxima Hora da Temp. Máxima
01/01/2012 31,0 14
02/01/2012 32,1 12
Mas essa hora não consigo pegar, já tentei if, busquei função que retorna a linha mas só achei rowNo, que não ajudou.
O ideal seria você usar um campo datetime no seu banco de dados.
Tenta esta expressão:
IF(Max(Temperatura)=MAX(TOTAL <Dia> Temperatura),Max(Hora))
Essa expressão retorna o valor maximo, no caso, sempre 23.
Rafael, eu preciso buscar a temperatura máxima (dentre outros dados) de cada dia, eu já tenho no banco um campo data e um campo hora, não vejo onde unir os dois ajudaria, poderia explicar?
Letícia,
Sugiro que crie um flag ou mesmo o próprio campo de temperatura máxima em seu modelo, para evitar expressões complexas ou mesmo de baixa performance na interface.
Se tiver uma tabela de temperaturas da como apresentou, poderia fazer o seguinte:
Temperaturas:
Select Dia, Hora, Temperatura from Tabela_Temperatura;
maxTemp:
Load Dia, Max(Temperatura) as Temperatura
resident Temperaturas;
left join(Temperaturas)
Load Dai, Temperatura, 1 as flagTemperatura
resident maxTemp;
drop table maxTemp;
para identificar as temperaturas máximas em um gráfico, poderia usar o seguinte set analys:
=only( {<flagTe mperatura = {1} >} Temperatura)
(Veja que só há uma temperatura máxima por dia)
e para pegar a hora, já existem outras opções.
Digamos que a temperatura máxima se repita em algumas horas (talvez não aconteça), mas todas elas receberiam o flagTemperatura =1.
Então, você pode escolher qual delas apresentar. Por exemplo, a primeira:
= min ( {<flagTe mperatura = {1} >} hora)
ou a última :
= max ( {<flagTe mperatura = {1} >} hora)
Espero que ajude,
Erich