on 01-05-2011 8:24 PM
Buenas tardes,
estoy creando una busqueda formateada dentro de una oferta de venta, pero tengo solo un problema, cuando realizo las consultas los velores me los devuelve multiplicados por 1.000.000, razon por la cual me dificulta mucho el poder realizar calculos sobre estos resultados.
ej: el valor que tengo es 18,50 y me entrega 18.500.000,00
realice select simples sobre las columnas para revisar si era problema del campo que habia creado, pero sucede lo mismo.
un ejemplo del select es el siguiente:
select $[$38.U_VM_PCaja.0]
el campo U_VM_PCaja el tipo es unidades y totales, estructura precio
si me pueden guiar se los agradeceria mucho.
Revisa tu configuracion regional de windows lo mas seguro es que tengas como separador de decimales "," (coma) en lugar de "." (punto) y por eso tienes las variaciones.
en esa misma configuracion puedes hacer los cambios para valores numericos y valores de moneda revisa ambos
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Revisa tu configuracion regional de windows lo mas seguro es que tengas como separador de decimales "," (coma) en lugar de "." (punto) y por eso tienes las variaciones.
en esa misma configuracion puedes hacer los cambios para valores numericos y valores de moneda revisa ambos
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
declare @var1 numeric(19,6)
declare @var2 numeric(19,6)
declare @var3 numeric(19,6)
set @var1=$[$38.U_HT_Plista.NUMBER]+(($[$38.U_HT_Plista.NUMBER]*$[$38.U_HT_Ajuste.NUMBER])/100)
set @var2 = @var1-((@var1 * $[$38.U_HT_Desc1.NUMBER])/100)
set @var3 = @var2-((@var2 * $[$38.U_HT_Desc2.NUMBER])/100)
Select convert (float , @var3)
Esto me ayudo mucho, por el Ing.Floyola
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
ya lo habia intentado antes de esa manera, gracias de todas maneras.
estuve realizando unas pruebas más, y es el campo del total de la linea el problema, ya que realice la busqueda por medio de una funcion y me entrego el valor correcto, mas cuando el resultado lo ingresaba mediante la busqueda al campo total de la linea me producia el problema de que se multiplicaba el valor por 1.000.000, ahora ¿como hacer para que este campo no haga eso? no tengo la menor idea.
saludos.
El campo
38.8.0 = Factor 2. cual es el factor que te aparece ahi?
Tambien aparece como 38.INV1.Factor2
Saludos
FLR
Edited by: Floyola on Jan 6, 2011 7:42 PM
Hice un select
$[$38.8.0]
y me arrojo el resultado 1,000000, creo que por ahi va el problema. ya que en dolares la coma no es igual al punto
Revisalo y me cuentas
Saludos
Edited by: Floyola on Jan 6, 2011 7:47 PM
revise la opcion que me indicaste, pero siguio arrojando exactamente lo mismo que antes(18500000 y 1000000).
y a lo que escribio floyola, si sabia que era el factor2 el que estaba tomando y el valor inicial al llamar el producto es 1 y al consultar este valor por fuera me entrega 1 pero al hacerlo mediante busqueda formateada y poner este valor sobre cualquier columna que sea numerica o unidades y totales me entrega los 1.000.000
tambien estuvimos viendo el caso que quizas mi equipo por la configuracion regional estuviera interferiendo en el manejo de los puntos y comas, pero al cambiarlo el problema siguio.
Buenas,
Realmente es muy extraño.
Prueba de esta manera
SELECT (SELECT $[$38.U_VM_PCaja.0]) * (SELECT $[$38.8.Number])
el factor siempre es 1? o lo iras modificando eventualmente...
Lo otro que puedes intentar es cambiar el "caracter separador" en Gestion / Parametrizaciones gererales / Visualizar. reemplaza la , por el . y vuelve a realizar la aritmetica.
Saludos
FLR
Edited by: Floyola on Jan 10, 2011 9:15 AM
Gracias por la ayuda a todos, el día viernes acudio un consultor de SAP y aproveche el momento para realizarle la consulta sobre este tema, y me dijo que primero tenia que transformar los datos a caracteres, luego reemplazar la , por . ya que para sql server la , representa miles, luego volver a transformarlos a numeros y realizar la operacion, y finalmente para volver a ingresarlo al campo total convertirlo a caracteres y reemplzar el . por la ,. Despues de todo esto logro salir el resultado correctamente.
adjunto la solucion por si alguien llega a tener le mismo problema.
SELECT replace(cast(cast(replace(cast($[$38.8.0] as char(15)), '.000000', '') as int) * cast(replace($[$38.U_VM_PCaja.0], ',', '.') as numeric(19,6)) as char(15)), '.', ',')
Muchas gracias a todos.
Buenas
Se supone que al ejecutar esa busqueda formateada me deberia arrojar los 18.50 que estan en tu campo de usuario?
En ese campo que se guarda? cantidades, precio, neto?
podrias anexar un pantallazo de una muestra para ver mejor el problema...
Saludos
FLR
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
exacto!, deberia arrojarme los 18,50 mas aun me arroja lo mismo pero "multiplicado por 1000000". En la imagen que anexo veras que traigo los 18,50 que se encuentran en un campo definido por usuario en el maestro de producto, pero al intentar trabajar con ese dato y otros más de la oferta de venta, me trae los valores multiplicados por 1000000.
Buenas,
Si el campo es precio, veamos que pasa si cambiamos el number por money en la busqueda
SELECT $[$38.U_VM_PCaja.Money]
Esta es toda la consulta formateada? o le aplicas alguna otra aritmetica?
de ser asi quizas la aritmetica podria estar mal
y podria ser asi
SELECT (SELECT $[$38.U_VM_PCaja.Money])*(SELECT $[$el campo a multiplicar]
Aunque todavia no comprendo de donde saca el 1.000.000 para multiplicar...es igual con todos los articulos?
Saludos
FLR
Edited by: Floyola on Jan 6, 2011 12:54 PM
si, uso la busqueda para realizar una operacion aritmetica, pero sea cual sea el campo me entrega el valor multiplicado por 1000000
Select (select $[$38.U_VM_PCaja.0]) * (select $[$38.8.0])
corresponde a la operacion aritmetica que estoy haciendo, aun asi, si traigo los datos 1 a 1 sin realizar operacion alguna sobre ellos de igual manera me los muestra multiplicados por 1000000.
Tambien realice las busquedas sobre otros articulos y sucede exactamente lo mismo.
Edited by: ivietal on Jan 6, 2011 5:50 PM
Estuve jugando un rato con la funcion Round y no me resulto... seguia en los mismo resultados que tenia antes de usarla
EJ:
SELECT ROUND(($[$38.8.Number] * $[$38.U_VM_PCaja.0]) , 2) /* Resultado: 18500000,00 */
SELECT ROUND(($[$38.8.Number] * $[$38.U_VM_PCaja.0]) /1000000 , 2) /* Resultado: 19 */
SELECT ROUND((SELECT $[$38.8.Number] /1000000) * (SELECT $[$38.U_VM_PCaja.0] /1000000), 2) /* Resultado: No Funciono */
SELECT ROUND(($[$38.8.Number] /1000000) * ($[$38.U_VM_PCaja.0] /1000000), 2) /* Resultado: No Funciono */
SELECT ROUND($[$38.8.Number] * ($[$38.U_VM_PCaja.0] /1000000), 2) /* Resultado: No Funciono */
SELECT ROUND($[$38.8.Number] * (SELECT $[$38.U_VM_Pcaja.0] /1000000), 2) /* Resultado: No Funciono */
saludos.
User | Count |
---|---|
107 | |
12 | |
11 | |
6 | |
5 | |
4 | |
4 | |
3 | |
3 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.