AJUDA EM SQL - SELECIONADO E FAZENDO OPERAÇÕES MATEMÁTICAS
banco firebird 1.5
os campos da tabela estão definidos como integer.
o script abaixo é executado (como teste) no IB Expert com sucesso.
(me retorna os registros cuja diferença (subtração) dos campos são iguais a 1).
minha questão é... preciso definir os campos como tipo char... e não integer.
então... como executar tal operação (subtração)
se os campos (dezena_1... até dezena_6) forem do tipo char(2)?
hummm... um typecast? não sei como fazer... podem me dar uma dica?
a utilização final será em delphi 7 + dbexpress + firebird
(software pessoal em desenvolvimento... para loterias (mega sena)).
grato desde já. abraços a todos.
select
ta_0001.registro,
ta_0001.dezena_1,
ta_0001.dezena_2,
ta_0001.dezena_3,
ta_0001.dezena_4,
ta_0001.dezena_5,
ta_0001.dezena_6
from ta_0001
where
(
(
(ta_0001.dezena_2 - ta_0001.dezena_1) = 1
and
(ta_0001.dezena_3 - ta_0001.dezena_2) = 1
and
(ta_0001.dezena_4 - ta_0001.dezena_3) = 1
and
(ta_0001.dezena_5 - ta_0001.dezena_4) = 1
)
or
(
(ta_0001.dezena_3 - ta_0001.dezena_2) = 1
and
(ta_0001.dezena_4 - ta_0001.dezena_3) = 1
and
(ta_0001.dezena_5 - ta_0001.dezena_4) = 1
and
(ta_0001.dezena_6 - ta_0001.dezena_5) = 1
)
)
Userba
Curtidas 0
Respostas
Wilson Junior
10/12/2010
Veja se é isto que você precisa:
Espero ter colaborado.
select ta_0001.registro, ta_0001.dezena_1, ta_0001.dezena_2, ta_0001.dezena_3, ta_0001.dezena_4, ta_0001.dezena_5, ta_0001.dezena_6 from ta_0001 where ( ( (CAST(ta_0001.dezena_2 AS INTEGER) - CAST(ta_0001.dezena_1 AS INTEGER)) = 1 and (CAST(ta_0001.dezena_3 AS INTEGER) - CAST(ta_0001.dezena_2 AS INTEGER)) = 1 and (CAST(ta_0001.dezena_4 AS INTEGER) - CAST(ta_0001.dezena_3 AS INTEGER)) = 1 and (CAST(ta_0001.dezena_5 AS INTEGER) - CAST(ta_0001.dezena_4 AS INTEGER)) = 1 ) or ( (CAST(ta_0001.dezena_3 AS INTEGER) - CAST(ta_0001.dezena_2 AS INTEGER)) = 1 and (CAST(ta_0001.dezena_4 AS INTEGER) - CAST(ta_0001.dezena_3 AS INTEGER)) = 1 and (CAST(ta_0001.dezena_5 AS INTEGER) - CAST(ta_0001.dezena_4 AS INTEGER)) = 1 and (CAST(ta_0001.dezena_6 AS INTEGER) - CAST(ta_0001.dezena_5 AS INTEGER)) = 1 ) )
Espero ter colaborado.
GOSTEI 0