Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 31-01-2007
mcalmanovici mcalmanovici is offline
Miembro
 
Registrado: jun 2006
Posts: 78
Poder: 18
mcalmanovici Va por buen camino
Thumbs down Multiplicacion de dos campos dentro de un order by...

Hola; quiero ejecutar la siguiente sentencia en sql con el motor de base de datos firebird. Cuando ejecuto esto me sale el siguiente error:
Integer overflow. The result of an integer operation caused the most significant bit of the result to carry.

La sentencia es:
select I.COD_ITEM AS ARTICULO, I.DESCRIPCION, I.ABC, I.INV_SEGURIDAD AS PUNTO_PEDIDO, I.ORDER_MIN AS LOTE_ECON_COMPRA, TA.QTY AS CONSUMO, TA.UNIT_COST AS PRECIO_ULT_COMPRA,
TA.COST AS IMPORTE, TA.ACCUM AS IMPORTE_ACUM,
TA.PORCENTAJE, TA.ABC as ABC_CALCULADO,
I.LEAD_TIME, TA.UNIT_COST, TA.QTY
FROM ITEMS I JOIN TMP_ABC TA ON I.ID_EMPRESA = TA.ID_EMPRESA
and I.COD_ITEM = TA.COD_ITEM
LEFT JOIN CONSUMO C ON I.COD_ITEM = C.COD_ITEM and
I.ID_EMPRESA = C.ID_EMPRESA and
C.ANIO = extract(year from current_date)
order by (TA.QTY * TA.UNIT_COST)


Si a esta sentencia le saco la línea del order by funciona correctamente. Los campos TA.QTY y TA.UNIT_COST son de tipo "numeric (15,8)". Supongo que el error es porque son numeric los campos. Yo necesito ordenar la consulta de mayor a menor pro TA.QTY * TA.UNIT_COST.
Esta consulta la realizo desde el delphi para realizar un reporte.
También trate de que esta multiplicacion me la devuelva como un campo más para luego poder ordenar la consulta desde el data set de delphi pero tambien me tira el mismo error.
Si alguien sabe si existe otra forma de ordenar esto o que estoy haciendo mal, estaré agradecido.

Desde ya muchas gracias.
Mariano.
Responder Con Cita
  #2  
Antiguo 31-01-2007
fdelamo fdelamo is offline
Miembro
 
Registrado: oct 2005
Ubicación: Sotoca de Tajo - Guadalajara (ESP)
Posts: 86
Poder: 19
fdelamo Va por buen camino
No se si funcionará:

Código SQL [-]
select TA.QTY * TA.UNIT_COST as orden, I.COD_ITEM AS ARTICULO, I.DESCRIPCION, I.ABC, I.INV_SEGURIDAD AS PUNTO_PEDIDO, I.ORDER_MIN AS LOTE_ECON_COMPRA, TA.QTY AS CONSUMO, TA.UNIT_COST AS PRECIO_ULT_COMPRA,
TA.COST AS IMPORTE, TA.ACCUM AS IMPORTE_ACUM,
TA.PORCENTAJE, TA.ABC as ABC_CALCULADO,
I.LEAD_TIME, TA.UNIT_COST, TA.QTY
FROM ITEMS I JOIN TMP_ABC TA ON I.ID_EMPRESA = TA.ID_EMPRESA
and I.COD_ITEM = TA.COD_ITEM
LEFT JOIN CONSUMO C ON I.COD_ITEM = C.COD_ITEM and
I.ID_EMPRESA = C.ID_EMPRESA and
C.ANIO = extract(year from current_date)
order by 1
__________________
Sotoca Web
Responder Con Cita
  #3  
Antiguo 31-01-2007
Avatar de Bicho
[Bicho] Bicho is offline
Miembro Premium
 
Registrado: jul 2003
Ubicación: Inca - Mallorca
Posts: 1.776
Poder: 22
Bicho Va por buen camino
Hola, has probado algo como esto:

Código SQL [-]
select TA.QTY * TA.UNIT_COST, I.COD_ITEM AS ARTICULO, I.DESCRIPCION, I.ABC, I.INV_SEGURIDAD AS PUNTO_PEDIDO, I.ORDER_MIN AS LOTE_ECON_COMPRA, TA.QTY AS CONSUMO, TA.UNIT_COST AS PRECIO_ULT_COMPRA,
TA.COST AS IMPORTE, TA.ACCUM AS IMPORTE_ACUM,
TA.PORCENTAJE, TA.ABC as ABC_CALCULADO,
I.LEAD_TIME, TA.UNIT_COST, TA.QTY
FROM ITEMS I JOIN TMP_ABC TA ON I.ID_EMPRESA = TA.ID_EMPRESA 
and I.COD_ITEM = TA.COD_ITEM
LEFT JOIN CONSUMO C ON I.COD_ITEM = C.COD_ITEM and
I.ID_EMPRESA = C.ID_EMPRESA and
C.ANIO = extract(year from current_date)
order by 1

Espero te sirva.

Saludos
Responder Con Cita
  #4  
Antiguo 31-01-2007
mcalmanovici mcalmanovici is offline
Miembro
 
Registrado: jun 2006
Posts: 78
Poder: 18
mcalmanovici Va por buen camino
No me funciono

Te comento que de esta forma no me funciono.. Sigue tirandome error en el TA.QTY * TA.UNIT_COST.
No si se te ocurre otra idea.
Gracias.

Cita:
Empezado por fdelamo
No se si funcionará:

Código SQL [-]select TA.QTY * TA.UNIT_COST as orden, I.COD_ITEM AS ARTICULO, I.DESCRIPCION, I.ABC, I.INV_SEGURIDAD AS PUNTO_PEDIDO, I.ORDER_MIN AS LOTE_ECON_COMPRA, TA.QTY AS CONSUMO, TA.UNIT_COST AS PRECIO_ULT_COMPRA, TA.COST AS IMPORTE, TA.ACCUM AS IMPORTE_ACUM, TA.PORCENTAJE, TA.ABC as ABC_CALCULADO, I.LEAD_TIME, TA.UNIT_COST, TA.QTY FROM ITEMS I JOIN TMP_ABC TA ON I.ID_EMPRESA = TA.ID_EMPRESA and I.COD_ITEM = TA.COD_ITEM LEFT JOIN CONSUMO C ON I.COD_ITEM = C.COD_ITEM and I.ID_EMPRESA = C.ID_EMPRESA and C.ANIO = extract(year from current_date) order by 1
Responder Con Cita
  #5  
Antiguo 31-01-2007
fdelamo fdelamo is offline
Miembro
 
Registrado: oct 2005
Ubicación: Sotoca de Tajo - Guadalajara (ESP)
Posts: 86
Poder: 19
fdelamo Va por buen camino
Prueba a hacer un cast as NUMERIC, o ha dividirlo antes de multiplicar:

(TA.QTY/1000000) * (TA.UNIT_COST/1000000)
__________________
Sotoca Web
Responder Con Cita
  #6  
Antiguo 31-01-2007
mcalmanovici mcalmanovici is offline
Miembro
 
Registrado: jun 2006
Posts: 78
Poder: 18
mcalmanovici Va por buen camino
Asi si funciono

De esta forma si funciono...
Te agradezco mucho por tu tiempo.....

Saludos.
Muchas gracias de nuevo.
Mariano.
Cita:
Empezado por fdelamo
Prueba a hacer un cast as NUMERIC, o ha dividirlo antes de multiplicar:

(TA.QTY/1000000) * (TA.UNIT_COST/1000000)
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
Order by VRO SQL 6 31-08-2004 08:17:05
Multiplicacion por un flotante Anotherlife Varios 2 22-07-2004 09:51:19
Valor de DBEdit a partir de la multiplicación de otros dos RyAr Conexión con bases de datos 8 09-07-2004 17:14:26
Order by ...... chutipascal Firebird e Interbase 8 24-06-2003 14:46:21
Realizar una multiplicacion en una consulta muli SQL 2 19-06-2003 19:44:32


La franja horaria es GMT +2. Ahora son las 15:48:58.


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