Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Problama con campo NUMERIC(15,2) (https://www.clubdelphi.com/foros/showthread.php?t=40242)

El_Raso 10-02-2007 14:42:02

Problama con campo NUMERIC(15,2)
 
Que tal muchachos...

Tengo la siguiente consulta:
Código SQL [-]
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
Código Delphi [-]
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


La franja horaria es GMT +2. Ahora son las 01:29:43.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi