PDA

Ver la Versión Completa : Problama con campo NUMERIC(15,2)


El_Raso
10-02-2007, 14:42:02
Que tal muchachos...

Tengo la siguiente consulta:

select a.Cliente, a.montocapital
from hprestamo a
where a.montocapital >= 1000.00 and a.MontoCapital <= 1000.00


Y no funciona para nada....dice que no hay registro y hay como 2000
Que estoy haciendo mal...

Uso IB 6.5 Dialect 1

Thx

dec
10-02-2007, 15:00:34
Hola,

La consulta está pidiendo registros "mayores o iguales que 1000.00" y "menores o iguales a 1000.00"... ¿no lleva eso precisamente a que no retorne resultado alguno? Porque no habrá registros "mayores o iguales que 1000.00" que a su vez sean "menores o iguales a 1000.00"... ¿No?

LordRF
10-02-2007, 15:06:03
Hola,

al parecer no tienes ninguno registro que tenga el valor 1000.00 este seria el unico que te ensennaria si tubieras uno, ya que estas buscando todos los valores inferiores a 1000 y al mismo tiempo superiores, de ello se contradice.

para hacer lo que quieres utiliza el BETWEEN
where a.montocapital between "100.00" and "1000.00"

dec
10-02-2007, 15:15:56
Hola,

Pues sí. Estaba yo olvidando el "igual que..."... lo que haría que como dice el compañero pudiera retornarse un registro: justamente el que tuviera el valor "1000.00".

El_Raso
10-02-2007, 17:54:55
Gracias Muchachos por contestar...

En realidad ya ubiece probado con el between y tampoco me funciona... en realidad no le veo logica a esto ya que es una consulta super sencilla..
Tengo unos dos mil registro donde a.MontoCapital = 1000.00, de verdad que estoy tirando la toalla...

Al yo poner en la consulta >= y <= debe de traerme todos los que son 1000 y no trae nada...

Si alguien mas me puede ayudar por favor...

dec
10-02-2007, 17:58:25
Hola,

Lo mismo estoy metiendo la pata, pero, si lo que quieres es traer los registros cuyo "a.MontoCapital = 1000.00", ¿porqué no pedir directamente esos registros? O sea, "where a.MontoCapital = 1000.00"?

Creo que esto es lo más "sencillo" y no la consulta que tú tratas de realizar, que sin duda es más compleja y además parece no ofrecerte los resultados deseados.

¿O es que hay algún motivo para tener que hacerlo tal como quieres? Yo no lo veo por ningún lado, pero, en fin, tal vez tú sí. :)

El_Raso
10-02-2007, 18:57:30
Gracias dec por tu respuesta... lo que en realidad quiero es los montos dentro de un Rango... Escogi el 1000.00 solo como ejemplo y es mas grabe aun la cosa... yo le pongo a.MontoCapital = 1000.00 y tampoco me trae nada y hay muchisimos registros con ese valor... de verdad que no tengo ni idea de lo que esta pasando..

Sigan pensando por mi por favor que ya yo no doy mas...

Lepe
11-02-2007, 10:58:16
Intenta con "between entre 999.00 y 1001.00", no recuerdo exactamente como funciona en dialecto 1, pero creo recordar que no se guarda exactamente los decimales que puedan tener.

No he trabajado con dialecto 1, pero en Firebird recuerdo perfectamente que para guardar valores monetarios, se debía usar numeric(10,2) como mínimo en Dialecto 3.

Saludos y suerte