cancel
Showing results for 
Search instead for 
Did you mean: 

Multiplicacion de campos en orden de ventas.

nancy_hernandez2
Participant
0 Kudos

Hola chicos, tengo un problema con una busqueda formateada muy sencilla que me está marcando un mensaje de error.

El detalle es este.

En una orden de venta se tiene una consulta que trae la multiplicación de dos campos uno definido como numerico y otro definido como cantidad. el valor donde se debe mostrar el valor de la suma es numerico.

coloque esta consulta y hace la multiplicación pero al abrir el documento me marca el error, aunque si me deja trabajar.

1).[Microsoft][SQL Server Native Client 10.0][SQL Server]Error al convertir el tpo de datos nvarchar as numerc. "(NNM4)

SELECT((SELECT CAST($[RDR1.U_PzaxDisplay] AS NUMERIC)) * (SELECT CAST($[RDR1.U_CANTREQ] AS NUMERIC)))

Coloque la busqeuda como sigue y me aparece el mismo error.

SELECT((SELECT CAST($[RDR1.U_PzaxDisplay] AS NUMERIC (10,2) )) * (SELECT CAST($[RDR1.U_CANTREQ] AS NUMERIC (10,2) )))

Agradezco me puedan apoyar con algun comentario para resolve el que ya no aparezca ese rror al abrir la ventana.

saludos

NANCY

Accepted Solutions (1)

Accepted Solutions (1)

felipe_loyolarodriguez
Active Contributor
0 Kudos

Pruebalo asi con CONVERT


SELECT (CONVERT(NUMERIC, (SELECT $[RDR1.U_PzaxDisplay])))*(CONVERT(NUMERIC, (SELECT $[RDR1.U_CANTREQ])))

Saludos

nancy_hernandez2
Participant
0 Kudos

hola chicos,floya, mary,

he probado precisamente el codigo que envio loya que utiliza el convert y funciona bien, hace la operacón pero al abrir el documento sigue marcandno el mismo error. no se que otra forma pueda probar o bien si afecte en algo este mensaje de error?

agradezco su apoyo

NANCY

angeles804
Active Contributor
0 Kudos

ponle un where select, y aparte de esto creo que el campo le tienes que poner un 0 por que a lo mejor por eso te marca error al abrir la ventana.

former_member188440
Active Contributor
0 Kudos

Intenta asi el select

por ejemplo



select $[oinv.u_tucampo.number]

Segun el tipo de dato q sea

Edited by: Mauricio I Quintana on Aug 25, 2011 12:45 PM

former_member203638
Active Contributor
0 Kudos

Puedes intentar asi Nancy, aver si te funciona.

 
Declare @pzaD as numeric
Declare @cantreq as numeric
Set @pzaD = (Select $[RDR1.U_PzaxDisplay])
Set @cantreq = (Select $[RDR1.U_cantreq])
Begin
Select (@pzaD * @cantreq)
End

Saludos

Alessandro.

nancy_hernandez2
Participant
0 Kudos

hola Floyola, Mauricio, Mary, Alessandro.

Les comento que sus aportaciones las he probado todos hacen la multiplicación del dato como tal al igual que la busqueda formateada que yo apunté al abrir el mensaje pero en todos locasos sigue marcando el mismo error. lo que me da la impresion es que el sistema esta ejecutando la busqueda formateada desde que se habre el documento como si no respetara la asignación del disparador de cierto campo, llegué a pensar que era error de parche pero pasa hasta en la ultima versión y en el ultimo parche. estuve checando todos los valores que intervienen y bueno puedo comentar lo siguiente.

en el sistema hay una busqueda formateada que realiza un calculo, arroja un número pero está categorizado como nvarchar, este numero es el que yo jalo en las ordenes de compra en un campo de usuario que está defnido como entero, lo jalo para la busqueda formateada que puse arriva que tambien es un entero y se sigue presetando el mismo sintillo de error.

Probano todo lo que me dieron aun así no logro resolver el problema, alguien tiene alguna idea o sugerencia adicional que me pueda servir?

se los agradezco de antemano.

SALUDOS CORDIALES.

NANCY.

former_member188440
Active Contributor
0 Kudos

Lo que se me ocurre es que tienes alguna búsqueda configurada en "Actualizar Regularmente"

Quizás te convendría ir des habilitando y habilitando una por una las búsquedas hasta que des con cual es, alguna vez me paso eso al migrar de 2007 a la 88, y se corrigió cuando subí de parche, pues pasaba con el pl 13 si no me equivoco de la 88

Answers (2)

Answers (2)

angeles804
Active Contributor
0 Kudos

el comando convert ya lo visto nancy?

angeles804
Active Contributor
0 Kudos

mira no se si esto te pueda servir, pero esto me funciono a mi.


Select 
       case 
          when (t0.salunitmsr='kilo') then
                ($[rdr1.quantity]/t0.sweight1)
          Else
	  ($[rdr1.quantity])
end
   From OITM T0
   Where t0.itemcode=$[$38.1.11]

traía el campo desde la tabla oitm o tu campo si es un campo definido por usuario puedes modificar su tipo.


Select case 
           when (t0.salunitmsr='tr') then
                ($[rdr1.quantity]* t0.SWdth1Uni)
          when (t0.salunitmsr='kilo') then
                ($[rdr1.quantity])
           when (t0.salunitmsr='PIEZA') Then
                ($[rdr1.quantity]*t0.swdth1uni)
           when (t0.salunitmsr='Tramo') then
                ($[rdr1.quantity]*t0.swdth1uni)
end
   From OITM T0
   Where t0.itemcode=$[$38.1.11]

Edited by: mary merecias on Aug 25, 2011 10:45 AM