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

money * money

Estas en el tema de money * money en el foro de PostgreSQL en Foros del Web. Hola amigos del foro: Tengo un problema, estoy haciendo un procedimiento almacenado donde necesito hacer operaciones entre tipos de datos money. El lenguange que estoy ...
  #1 (permalink)  
Antiguo 21/12/2006, 11:27
 
Fecha de Ingreso: mayo-2006
Mensajes: 16
Antigüedad: 17 años, 11 meses
Puntos: 0
Pregunta money * money

Hola amigos del foro:
Tengo un problema, estoy haciendo un procedimiento almacenado donde necesito hacer operaciones entre tipos de datos money. El lenguange que estoy utilizando es 'plpgsql'
Código:
.......	
			IF REC.CST_MONEDA = MONNAL THEN
				UTILIDAD := UTILIDAD + (REC.CST_PU *  REC.CIN_SALIDAS);
			END IF;
			
			IF REC.CST_MONEDA = MONEXT THEN
				PU := REC.CST_PU * TIPOCAMBIO;
				UTILIDAD := UTILIDAD + (PU * REC.CIN_SALIDAS);
			END IF;
y me sale el siguente error
ERROR: operator does not exist: money * money
HINT: No operator matches the given name and argument type(s). You may need to add explicit type casts.
CONTEXT: SQL statement "SELECT $1 * $2 "
Espero puedan ayudarme, gracias de antemano
  #2 (permalink)  
Antiguo 22/12/2006, 08:29
 
Fecha de Ingreso: mayo-2006
Mensajes: 16
Antigüedad: 17 años, 11 meses
Puntos: 0
Re: money * money

Estuve buscando, y la solución es simple

en la parte de utilidad es:
utilidad := (utilidad) + (resto * pu);
solo tenemos que utilizar paréntesis, para sumar tipo de datos money
  #3 (permalink)  
Antiguo 13/01/2007, 10:45
 
Fecha de Ingreso: enero-2007
Mensajes: 2
Antigüedad: 17 años, 3 meses
Puntos: 0
Re: money * money

Es obvio que no existe multiplicaion de monedas por monedas las unidades te darían moneda al cuadrado, no tiene sentido , revisa que tipo de contenidos variables vas ha utilizar (TIPOCAMBIO no deberái ser tipo moneda), en todo caso si requieres ésto si o si debes transformar en números con 4 decimales para el manejo de monedas. Generalmente nunca hago uso de variablaes money, sino para reportes en facturas o algo parecido. Para cálculos te aconsejo utilizar siempre números long.
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 06:50.