geison correia escreveu:
> Caros resolvi o problema parcialmente, mas o q eu estou fazendo de errado
> agora?
>
> WHILE resultado AND resultado.ddl_dh >= data_hora AND resultado.ddl_dh < hora
> LOOP
>
> Da o seguinte erro:
>
> ERRO: argumento do AND deve ser do tipo boolean, e não do tipo dado_lido
> CONTEXT: comando SQL "SELECT $1 AND $2 >= $3 AND $2 < hora"
>
> qual o melhor jeito de fazer esse laço? Tentei usar um FOR, mas n deu certo.
>
> FOR resultado IN resultado.ddl_dh >= data_hora AND resultado.ddl_dh <
> data_hora
> LOOP
>
> Alguém pode me ajudar!!
>
Verifique se o que você deseja fazer não é:
diameter := 0;
FOR resultado IN SELECT * from dado_lido where vei_id =
codigosArena AND ddl_dh >= data_hora;
LOOP
diameter := 12742000;
c := 90 - (resultado.ddl.lat[0]);
b := 90 - (resultado.ddl.lat[1]);
a := resultado.ddl.lat[0] - (resultado.ddl.lat[1]);
x := acos((cos(b) * cos(c)) + (sin(b) * sin(c) * cos(a)));
x := (PI * diameter * x) / 360;
tempogasto := resultado.ddl.lat[1] - resultado.ddl.lat[0];
velocidade := x/tempogasto;
IF (velocidade > 150) THEN
DELETE FROM dado_lido WHERE vei_id = codigosArena AND
ddl_dh = data_hora;
END IF;
END LOOP;
Osvaldo
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral