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 14-07-2012
Avatar de jordangel
jordangel jordangel is offline
Miembro
NULL
 
Registrado: jun 2011
Posts: 12
Poder: 0
jordangel Va por buen camino
ayuda con una suma en interbase

buenas noches amigos les escribo para pedirles ayuda con un problemita en interbase

estoy intentado crear un store procedure de incluir, el programa lo corre pero al momento de realizar una prueba me muestra todo lo ke agrego pero no me calcula el total, me sale NULL, pero en lo demas si me agrega los valores.. porfa ayudenme en este codigo.

aqui el codigo
Código SQL [-]
set term!
create procedure incluvend (icivend varchar (15), iapenomb varchar (30), ifnac date, isbase float, ibsfact float, 
ibscobranza float, iporcomisvta float, iporcomiscob float)
as
  declare variable totaldev float;
  declare variable bscomisvta float;
  declare variable bscomiscob float;
  declare variable sbase float;
  declare variable bsfact float;
  declare variable bscobranza float;
  declare variable porcomisvta float;
  declare variable porcomiscob float;
begin
  bscomisvta= :bsfact*:porcomisvta/100;
  bscomiscob= :bscobranza*:porcomiscob/100;
  totaldev= :sbase+:bscomisvta+:bscomiscob;
  insert into vendedor values
  (:icivend,:iapenomb,:ifnac,:isbase,:ibsfact,:ibscobranza,:iporcomisvta,:iporcomiscob,:totaldev);
end

a cada campo de coloce una (i) antes del nombre como para identificar que son de incluir, execpto el total que no esta declarado arriba

Última edición por ecfisa fecha: 14-07-2012 a las 07:22:49. Razón: ETIQUETAS [SQL] [/SQL]
Responder Con Cita
  #2  
Antiguo 14-07-2012
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 jordangel.

Por favor cuando incluyas código en tus mensaje utiliza TAG's para darle más legibilidad. Te pongo una imágen que explica el uso:



Ya las agregué al codigo de tu mensaje.

Saludos y gracias por tu colaboración.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 14-07-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
No queda claro el problema
Responder Con Cita
  #4  
Antiguo 14-07-2012
Gallosuarez Gallosuarez is offline
Miembro
 
Registrado: feb 2007
Posts: 92
Poder: 18
Gallosuarez Va por buen camino
Talking Posible error ...

Jordangel:

De acuerdo a la documentación la sentencia insert es la siguiente:
Código SQL [-]
INSERT INTO tabal | vista (lista columnas) 
VALUES (lista de valores) 
[RETURNING  lista_columnas [INTO lista variables]]

En tu sentencia insert, veo la lista de valores a sustituir , pero ¿Donde está la lista de las columnas?
Ignoro si se pueda utilizar como tu la tienes, pero mi costumbre es siempre poner toda la lista de las columnas y despues poner toda la lista de valores, ¿me explico?

Saludos,
GST
Responder Con Cita
  #5  
Antiguo 14-07-2012
[birmain] birmain is offline
Miembro Premium
 
Registrado: feb 2005
Ubicación: Albacete - España
Posts: 49
Poder: 0
birmain Va por buen camino
Suma nula

Cuando se opera con un valor null, el resultado de cualquier operación que se realice con el, también es null. Para evitar esto, antes de operar con ciertos valores, es conveniente hacer la siguiente comprobación:

Código SQL [-]
if (valor is nul) then valor =0
Responder Con Cita
  #6  
Antiguo 14-07-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Gallosuarez, sí que se puede omitir la lista de campos si se dan los valores de todos ellos.
Responder Con Cita
  #7  
Antiguo 14-07-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por birmain Ver Mensaje
Cuando se opera con un valor null, el resultado de cualquier operación que se realice con el, también es null. Para evitar esto, antes de operar con ciertos valores, es conveniente hacer la siguiente comprobación:
Código SQL [-]if (valor is nul) then valor =0
Para esos casos es conveniente usar coalesce, que es una "abreviatura" del if .. then

Código SQL [-]
coalesce( : parametro, 0 )

Si el parámetro que se le pasa al campo es nulo entonces le da el valor cero.
Responder Con Cita
  #8  
Antiguo 15-07-2012
Gallosuarez Gallosuarez is offline
Miembro
 
Registrado: feb 2007
Posts: 92
Poder: 18
Gallosuarez Va por buen camino
Talking Creo haber hallado el problema ....

Jordangel:

Si afirmas que todos los demás valores no presentan ningún problema y la suma total contiene el valor nulo, entonces:
Código SQL [-]
  totaldev= :sbase+:bscomisvta+:bscomiscob;

la variable sbase debe de tener un valor nulo ... y efectivamente, nunca inicializas tal variable .... creo que mas bien debe de ir el parámetro isbase, ¿o no?

Saludos,
GST
Responder Con Cita
  #9  
Antiguo 15-07-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Claro, si el resultado es nulo es porque algún valor/parámetro es nulo.
Responder Con Cita
  #10  
Antiguo 18-07-2012
gendelphi gendelphi is offline
Miembro
 
Registrado: jul 2003
Ubicación: Tlaxcala Mexico
Posts: 73
Poder: 21
gendelphi Va por buen camino
NULL en Firebird

Una buena guía para manejo de NULL en Firebird
Responder Con Cita
  #11  
Antiguo 18-07-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Aquí está traducida al español.
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
Ayuda con suma de horas rocolza Impresión 4 10-02-2012 13:37:18
ayuda con suma de fechas josi Varios 4 22-10-2008 15:23:46
ayuda con interbase juanjoxi Firebird e Interbase 0 13-04-2007 22:45:50
Ayuda con interbase en red... ronimaxh Firebird e Interbase 9 25-05-2004 23:38:43
ayuda con sql y la funcion suma romfrost13 Firebird e Interbase 1 04-08-2003 20:46:43


La franja horaria es GMT +2. Ahora son las 08:37:49.


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