FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Problemas con BDE (SQL)
Hola,
Tengo un programa en el cual abro una consulta de un dbf desde el bde, la sentencia sql es como sigue: select * from cab_com,lincom where cab_com.ser_doc = lin_com.ser_doc and cab_com.num_doc = lin_com.num_doc los tipos de los campos son los siguientes ser_doc = character 3 posiciones largo num_doc = numerico 6 posiciones largo el resultado de esta consulta es : ser_doc num_doc cod_art cantidad Precio A 100 10 10 10.00 A 101 55 5 25.00 A 103 88 7 35.00 pero resulta que el resultado debería ser : ser_doc num_doc cod_art cantidad Precio A 100 10 10 10.00 A 101 55 5 25.00 102 62 8 27.50 A 103 88 7 35.00 El problema es: No encuenta los documentos cuya serie es blanco o nulo !!! Probe lo mismo con visual foxpro y me da el resultado correcto Interpreta distinto la sentencia ? cab_com.ser_doc = lin_com.ser_doc cuando son nulos o blancos los valores de los campos ? tengo la necesidad de resolver esto a la brevedad desde ya muchas gracias por vuestra ayuda |
#2
|
||||
|
||||
Intenta cambiar
where cab_com.ser_doc = lin_com.ser_doc por where (cab_com.ser_doc = lin_com.ser_doc or cab_com.ser_doc is null) // Saludos |
#3
|
|||
|
|||
Hola,
lo probe y funciono, ahora bien: no entendi el porque solamente hacer cab_com.ser_doc is null y no haces el lin_com.ser_doc is null ? como hace la comparacion el BDE ? muchas gracias por tu respuesta Saludos |
#4
|
||||
|
||||
Cita:
Lo que hay que saber aquí es que null es un valor especial por lo que las comparaciones de igualdad con null siempre dan false (al menos en el estándard) y por ello hay que usar el operador IS. // Saludos |
#5
|
|||
|
|||
Hola,
Muchas gracias por tu respuesta. Saludos |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
|