Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » PostgreSQL »

Problema con el where de una select

Estas en el tema de Problema con el where de una select en el foro de PostgreSQL en Foros del Web. Hola! Estoy teniendo un problema en una tabla que no consigo entender lo que está ocurriendo. La estructura de la tabla es la siguiente: CREATE ...
  #1 (permalink)  
Antiguo 02/02/2012, 08:04
 
Fecha de Ingreso: noviembre-2008
Mensajes: 8
Antigüedad: 16 años
Puntos: 0
Pregunta Problema con el where de una select

Hola!

Estoy teniendo un problema en una tabla que no consigo entender lo que está ocurriendo.
La estructura de la tabla es la siguiente:

CREATE TABLE diario
("idDiario" integer NOT NULL DEFAULT nextval('id_diario_seq'::regclass),
"codSociedad" character varying(8) NOT NULL,
"codNumCta" character varying(10) NOT NULL,
fecha date NOT NULL,
documento character varying(20),
"desc" character varying(45),
"tipoDiario" character varying(5) NOT NULL,
"tipoCanal" character varying(10) NOT NULL,
debe double precision,
haber double precision,
"codAnalitica" integer)

El problema está con el campo haber. Si realizo la siguiente query:

select * from diario where fecha='2010-03-24'
and documento in('E-1004612','E-1004626')

Obtengo dos resultados, donde el campo haber es 7.13
Si incluyo en la consulta

select * from diario where fecha='2010-03-24'
and documento in('E-1004612','E-1004626')
and haber = 7.13

No obtengo ningún resultado.
Si modifico manualmente el campo haber por cualquier otro valor y después lo vuelvo a modificar por 7.13, al realizar la consulta anterior obtengo los dos registros.

Este problema no ocurre siempre, es aleatorio. De hecho si realizo la siguiente query:

select * from diario where haber = 7.13

Obtengo resultados, donde no aparecen los registros de la query mostrada como ejemplo.

Alguien sabe que puede estar sucediendo?

Muchas gracias
  #2 (permalink)  
Antiguo 02/02/2012, 18:48
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 9 meses
Puntos: 360
Respuesta: Problema con el where de una select

es posible que el numero por formato solo muestre 2 decimales pero que tenga mas.

prueba esto:
Código SQL:
Ver original
  1. SELECT * FROM diario WHERE round(haber,2) = 7.13
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 06/02/2012, 06:57
 
Fecha de Ingreso: noviembre-2008
Mensajes: 8
Antigüedad: 16 años
Puntos: 0
Respuesta: Problema con el where de una select

Gracias por la respuesta, pero sigue sin solucionar el problema.

Primeramente porque la función round no acepta como primer parámetro double precision y después algunos usuarios conectan esta tabla a través de odbc a access y entonces aparece el problema de conflicto de escritura al intentar modificar estos registros (Otro usuario modificó este registro después de que usted comenzó a modificarlo.....) El problema se encuentra en el campo haber, ya que yo soy la única usuaria en mi local que puede acceder a la tabla y como dije en el post anterior, si modifico manualmente el valor de haber en postgresql después me deja modificar el registro en access sin tener conflicto de escritura.

Alguna otra idea?

Muchas gracias
  #4 (permalink)  
Antiguo 06/02/2012, 09:08
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 9 meses
Puntos: 360
Respuesta: Problema con el where de una select

Código SQL:
Ver original
  1. SELECT * FROM diario WHERE round(haber::NUMERIC,2) = 7.13
__________________
Without data, You are another person with an opinion.
W. Edwads Deming

Etiquetas: query, select, resultados
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:17.