Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 29-11-2011
ASAPLTDA ASAPLTDA is offline
Miembro
 
Registrado: jun 2003
Ubicación: COLOMBIA-CALI
Posts: 639
Poder: 21
ASAPLTDA Va por buen camino
Manejo Decimales Firebird

Hola Foristas,
Tengo una base de datos en el cual tengo definido la siguiente vista:
CREATE VIEW PEDRESV2( NOPEDIDO,
SEQNRO, CONO,
CLIENTE, RECURSO,
REFCLIENTE, PEDIDOCLIENTE,
SEQNRO_PEDDET, SEQNRO_INSALDO,
QTYUC_RES, QTYUC_DES,
QTYUC_PDT, QTYUC_FCT,
QTYUC_CNC, PICKLIST_NRO,
PICKLIST_PRT, PICKLIST_NOPRT,
PICKLIST_PARENT, WCAMPO,
WFLOAT, ACTIVO,
NOSUMARIA, WHSCOD,
WHSLOC, CONUMERO,
LOTE, FREQDESPACHO,
TRPPLANILLA, FLGDUMMY,
QTYDUMMY, IDPEDRES,
QTYRES, NORESERVA,
CLIENTESHP, DCLIENTESHP,
COUNTRYSHPTO, STATESHPTO,
CITYSHPTO, RUTADESPACHO,
RECURSOCLIENTE, DRECURSO,
QORDENADA, QDESPACHADA,
QCANCELADA, KGBRUUNIT,
VOLM3UNIT, QTYXESTIBA,
UNDMED, UNDMEDFCT,
FLGREQQTYUM, LOTE4,
CLFCOD, KGBRUTOT,
VOLM3TOT, QRESERVADAUM)
AS SELECT
R.NOPEDIDO , R.SEQNRO ,
R.CONO , R.CLIENTE ,
R.RECURSO , R.REFCLIENTE ,
M.REFCLIENTE, R.SEQNRO_PEDDET ,
R.SEQNRO_INSALDO ,
CAST(R.QTYUC_RESAS DECIMAL(18,5)) QTYUC_RES ,
R.QTYUC_DES , R.QTYUC_PDT ,
R.QTYUC_FCT , R.QTYUC_CNC ,
R.PICKLIST_NRO , R.PICKLIST_PRT ,
R.PICKLIST_NOPRT , R.PICKLIST_PARENT ,
R.WCAMPO , R.WFLOAT ,
R.ACTIVO , R.NOSUMARIA ,
R.WHSCOD , R.WHSLOC ,
R.CONUMERO , R.LOTE ,
R.FREQDESPACHO , R.TRPPLANILLA ,
R.FLGDUMMY , R.QTYDUMMY ,
R.IDPEDRES , R.QTYRES ,
R.NORESERVA , M.CLIENTESHP, M.DCLIENTESHP,
M.COUNTRYSHPTO, M.STATESHPTO,
M.CITYSHPTO, M.RUTADESPACHO,

D.RECURSOCLIENTE, D.DRECURSO,
D.QORDENADA, D.QDESPACHADA,
D.QCANCELADA,
A.KGBRU, A.VOLM3,
A.QTYXESTIBA, A.UNDMED,
A.UNDMEDFCT , A.FLGREQQTYUM,

S.LOTE4, S.CLFCOD,

(R.QTYUC_RES*A.KGBRU) AS KGBRUTOT,
(R.QTYUC_RES*A.VOLM3) AS VOLM3TOT,
R.QRESERVADAUM


FROM PEDRES R
LEFT OUTER JOIN PEDMST M ON M.NOPEDIDO = R.NOPEDIDO
LEFT OUTER JOIN PEDDET D ON D.SEQNRO = R.SEQNRO_PEDDET
LEFT OUTER JOIN RESMST A ON A.RECURSO = R.RECURSO
LEFT OUTER JOIN INSALDO S ON S.SEQNRO = R.SEQNRO_INSALDO



WHERE R.QTYUC_RES+0 > 0


como pueden observar el select tiene la comparacion una suma 0 al valor sin esta suma no devuelve el valor en la consulta lo cual me deja muy preocupado
La base de datos esta en firebird 2.1 la tabla de donde sale el campo la describo a continuacion

CREATE TABLE PEDRES (
NOPEDIDO NOPEDIDO /* NOPEDIDO = INTEGER DEFAULT 0 */,
SEQNRO SEQNRO NOT NULL /* SEQNRO = INTEGER DEFAULT 0 */,
CONO CONO /* CONO = VARCHAR(3) */,
CLIENTE CLIENTE /* CLIENTE = VARCHAR(15) */,
RECURSO RECURSO /* RECURSO = VARCHAR(20) */,
REFCLIENTE REFCLIENTE /* REFCLIENTE = VARCHAR(20) */,
SEQNRO_PEDDET PEDDET_SEQ NOT NULL /* PEDDET_SEQ = INTEGER DEFAULT 0 */,
SEQNRO_INSALDO INSALDO_SEQ NOT NULL /* INSALDO_SEQ = INTEGER DEFAULT 0 */,
QTYUC_RES QTYRESERVADA /* QTYRESERVADA = FLOAT DEFAULT 0 */,
QTYUC_DES QTYDESPACHADA /* QTYDESPACHADA = NUMERIC(18,4) DEFAULT 0 */,
QTYUC_PDT QTYPENDIENTE /* QTYPENDIENTE = NUMERIC(18,4) DEFAULT 0 */,
QTYUC_FCT QTYFACTURADA /* QTYFACTURADA = NUMERIC(18,4) DEFAULT 0 */,
QTYUC_CNC QTYCANCELADA /* QTYCANCELADA = NUMERIC(18,4) DEFAULT 0 */,
PICKLIST_NRO PICKLIST_NRO /* PICKLIST_NRO = INTEGER */,
NOPICKLIST NOPICKLIST /* NOPICKLIST = INTEGER */,
PICKLIST_PRT PICKLIST_PRT /* PICKLIST_PRT = CHAR(1) DEFAULT 'N' */,
PICKLIST_PARENT PICKLIST_PARENT /* PICKLIST_PARENT = INTEGER DEFAULT 0 */,
PICKLIST_NOPRT PICKLIST_NOPRT /* PICKLIST_NOPRT = INTEGER DEFAULT 0 */,
WCAMPO WCAMPO /* WCAMPO = CHAR(1) */,
WFLOAT WFLOAT DEFAULT 0 /* WFLOAT = FLOAT DEFAULT 0 */,
ACTIVO ACTIVO /* ACTIVO = CHAR(1) DEFAULT 'A' */,
FULTMNTO FULTMNTO /* FULTMNTO = TIMESTAMP */,
UULTMNTO UULTMNTO /* UULTMNTO = VARCHAR(30) DEFAULT USER */,
NOSUMARIA NOSUMARIA /* NOSUMARIA = INTEGER DEFAULT 0 */,
WHSCOD WHSCOD /* WHSCOD = VARCHAR(3) */,
WHSLOC WHSLOC /* WHSLOC = VARCHAR(15) */,
CONUMERO CONUMERO /* CONUMERO = INTEGER DEFAULT 0 */,
LOTE LOTE /* LOTE = VARCHAR(25) */,
FREQDESPACHO FREQDESPACHO /* FREQDESPACHO = DATE */,
TRPPLANILLA TRPPLANILLA /* TRPPLANILLA = INTEGER */,
FLGDUMMY FLGDUMMY /* FLGDUMMY = CHAR(1) */,
QTYDUMMY QTYDUMMY DEFAULT 0 /* QTYDUMMY = NUMERIC(18,4) DEFAULT 0 */,
IDPEDRES IDPEDRES /* IDPEDRES = INTEGER DEFAULT 0 */,
QTYRES QTYRES /* QTYRES = NUMERIC(18,4) DEFAULT 0 */,
FCREACION FCREACION /* FCREACION = TIMESTAMP */,
NORESERVA NORESERVA /* NORESERVA = INTEGER DEFAULT 0 */,
LOTE4 LOTE4 /* LOTE4 = VARCHAR(25) */,
IDPEDDET IDPEDDET /* IDPEDDET = INTEGER */,
IDINSALDO IDINSALDO /* IDINSALDO = INTEGER DEFAULT 0 */,
LOTEPRODUCTO LOTEPRODUCTO /* LOTEPRODUCTO = VARCHAR(25) */,
QRESERVADA QRESERVADA /* QRESERVADA = NUMERIC(18,4) DEFAULT 0 */,
QRESERVADAUM QRESERVADA /* QRESERVADA = NUMERIC(18,4) DEFAULT 0 */,
QDESPACHADAUM QDESPACHADA /* QDESPACHADA = NUMERIC(18,6) DEFAULT 0 */,
QTYDUMMYUM QTYDUMMY /* QTYDUMMY = NUMERIC(18,4) DEFAULT 0 */,
QDESPACHADA QDESPACHADA /* QDESPACHADA = NUMERIC(18,6) DEFAULT 0 */,
QPENDIENTE QPENDIENTE /* QPENDIENTE = NUMERIC(18,4) DEFAULT 0 */,
QFACTURADA QFACTURADA /* QFACTURADA = NUMERIC(18,4) DEFAULT 0 */,
QCANCELADA QCANCELADA /* QCANCELADA = NUMERIC(18,4) DEFAULT 0 */,
NOBULTOPICKLIST NOBULTOPICKLIST /* NOBULTOPICKLIST = INTEGER DEFAULT 0 */,
NOSHIPPING NOSHIPPING /* NOSHIPPING = INTEGER */,
COMENTARIO COMENTARIO /* COMENTARIO = VARCHAR(60) */,
MSGDEERROR MSGDEERROR /* MSGDEERROR = VARCHAR(254) */,
PREFIJOFCT PREFIJOFCT /* PREFIJOFCT = VARCHAR(5) */,
IDFCTMST IDFCTMST /* IDFCTMST = INTEGER */,
NOFACTURA NOFACTURA /* NOFACTURA = INTEGER */,
UUDIPEDRES UUDI /* UUDI = VARCHAR(20) */,
UUDIPEDDET UUDI /* UUDI = VARCHAR(20) */,
UUDIPEDMST UUDI /* UUDI = VARCHAR(20) */,
LOTE2 LOTE2 /* LOTE2 = VARCHAR(25) */,
LOTE3 LOTE3 /* LOTE3 = VARCHAR(25) */,
QDESUBICADA QDESUBICADA /* QDESUBICADA = FLOAT */
);

Como puede observar todo parace bien pero no lo retorna porque no hace la comparacion bien , si alguno ha encontrado este caso podria comentar su solucion definitiva gracias
Responder Con Cita
  #2  
Antiguo 29-11-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola ASAPLTDA.

Por favor, recuerda el uso de las etiquetas [sql] [/sql] , cuando pongas código SQL, muchas gracias.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Manejo de decimales en campo calculado Fita Firebird e Interbase 4 11-02-2011 02:05:13
Manejo de Fechas en Firebird 2.1 Jose Roman SQL 3 17-02-2009 17:15:03
manejo de decimales de un Float BC++ C++ Builder 3 12-08-2008 17:51:58
Ayuda para el manejo de decimales rruffino Varios 3 15-12-2006 21:01:36
ayuda de manejo de transaccione con firebird mateamargo Firebird e Interbase 1 04-11-2005 02:41:39


La franja horaria es GMT +2. Ahora son las 15:46:10.


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
Copyright 1996-2007 Club Delphi