Evaluar un campo en FOX

No se mucho de la sintaxis en fox, tengo una consulta que funciona ok con el transact-sql y deseo que me la traduzcan a la sintaxis fox:
SELECT COD_PROD, MONTO_VENTA = CASE WHEN tipo_cambio=0 THEN SUM(pre_uni*cantidad)
ELSE (tipo_cambio)*(pre_uni*cantidad) END
FROM GUIA_DET
WHERE .....
Mi problema es evaluar una columna y según esa columna realizar una u otra operación. En TRANSACT-SQL no hay problema puedo usar el case incluso en oracle puedo usar case o decode pero en FOX no se cual es la sintaxis. Yo ejecuto esa consulta desde asp.net usando la clase system.data.odbc Agradecería mucho su respuesta :D

1 Respuesta

Respuesta
A mi entender y viejo proceder de XBASE, tendrías que hacer dos sentencias de trabajo. Cada una de las sentencias las tienes con los datos completos de ahí procedes a sumar cada uno de los valores, o todo en una sola y recorres todos los datos, dependiendo del valor de control lo sumas a una u otra variable.
HIce lo sigte pero me sale error de sintaxis, ¿en qué esta mal?
select x.cod_prod, sum(x.monto) from
( SELECT cod_prod, pre_uni*cant monto
from tabla where tipo_cambio=0 and..
UNION
select cod_prod,
pre_uni*cant*tipo_cambio monto
from tabla where tipo_cambio<>0 and..
) X
Gracias por la ayuda, espero tu respuesta, parece algo sencillo pero no se porque sale el mensaje de error de sintaxis en sqlserver y oracle funciona bien pero cuando me conecto a fox no :'(
No le veo explicación lógica porque no te permite la primera sentencia, la segunda debe ser por el uso de los parentésis que no los permite, pero porque no vas a la página de http://www.yahoo.com y buscas en los grupos que tiene una que este especializado solamente en visual fox, ya que mis conocimiento se truncan con tu problema.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas