SQL - ayuda en escenario

 
Vista:

ayuda en escenario

Publicado por miguel (2 intervenciones) el 14/03/2012 19:58:05
tengo este escenario


- Si el precio base es igual o menor a $20.99 el precio de 1 a 2499 kgs será ese mismo y si la venta es mayor a 2500 kgs, rebajara el sistema .50 cts por kg.
- Si el precio base es igual o mayor a $21.00 el precio de 1 a 2499 kgs será ese mismo y si la venta es mayor a 2500 kgs, rebajara el sistema $1.00 por kg.


entonces hice este query pero algo le esta faltando

SELECT CASE
WHEN OITM.T0.[U_PrecioBase] <= 20.99 AND $[INV1.QUantity] <= 2499 THEN OITM[U_PrecioBase]
WHEN OITM.T0.[U_PrecioBase] <= 20.99 AND $[INV1.QUantity] > 2499 THEN OITM U_PrecioBase] -.5
WHEN OITM.T0.[U_PrecioBase] > 20.99 AND $[INV1.QUantity] <= 2499 THEN OITM [U_PrecioBase]
WHEN OITM.T0.[U_PrecioBase] > 20.99 AND $[INV1.QUantity] > 2499 THEN OITM
[U_PrecioBase]-1
ELSE 0
END
FROM OITM WHERE OITM.ItemCOde = $[INV1.ItemCode]
END

me marca error incorrecy sintax U_PrecioBase
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 806
Bronce
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

ayuda en escenario

Publicado por leonardo_josue (1173 intervenciones) el 14/03/2012 23:05:29
Hola Miguel...

El error puede estar en varios lados, eso de Copiar y pegar no deja nada bueno ...

En primer lugar, en la parte de la comparación pones el campo así:

1
OITM.T0.[U_PrecioBase]


lo que implicaría que OITM es tu BD, T0 es tu tabla y [U_PrecioBase] es tu campo correcto???

Sin embargo, en la parte del THEN pones

1
OITM[U_PrecioBase]


¿Donde quedó el .T0.?

de hecho en cada THEN pones el campo de manera distinta:

en el segundo THEN
OITM U_PrecioBase] --> Sin la referencia a T0 ni el corchete que abre

en el tercer THEN
OITM [U_PrecioBase]--> sin la referencia a T0, pero aquí si pones el corchete que abre.

Una vez que estandarices la referencia a tu campo U_PrecioBase prueba nuevamente y dinos si te sigue marcando error. Te recomiendo que primero te asegures que una de las condiciones funciones... y después puedes entonces sí copiar y pegar las condiciones restantes, cambiando sólo el operador con el que comparas.

Saludos
Leo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

ayuda en escenario

Publicado por miguel (2 intervenciones) el 15/03/2012 23:13:25
mira asi lo maneje

SELECT CASE
WHEN T0.[U_PrecioBase] <= 20.99 AND $[INV1.QUantity] <= 2499 THEN T0.[U_PrecioBase]
WHEN T0.[U_PrecioBase] <= 20.99 AND $[INV1.QUantity] > 2499 THEN (T0.[U_PrecioBase] - .5)
WHEN T0.[U_PrecioBase] > 20.99 AND $[INV1.QUantity] <= 2499 THEN T0.[U_PrecioBase]
WHEN T0.[U_PrecioBase] > 20.99 AND $[INV1.QUantity] > 2499 THEN (T0.[U_PrecioBase]-1)
ELSE 0
END
FROM OITM T0 WHERE T0.ItemCode = [$[$38.1.1]]
END

y aun asi me dice el error

U_PrecioBase es mi campo de donde proviene
INV1.Quantity es mi campo de cantidad en mi documento a nivel linea
OITM es la tabla de donde esta situada mi precio base es una tabla de dato maestro de articulos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar