Busqueda Formateada Error en Select

Me pasé de torpe jajajaja… Disculpen por esta consulta chicos pero tengo tieeeempo que no hago una busqueda formateada y una extraña peste agarró a mis desarrolladores… (empezó por 1 de ellos, y a los 3 días el departamento estaban todos con la gripe y demás por lo que RRHH decidió darles unos días de descanso y solicitaron una limpieza profunda del área para evitar contagios nuevos a su regreso).

Tengo esta busqueda formateada,

Declare @FORMA as nvarchar (11)
set @FORMA = 'ANUAL'--SELECT $[ORDR.U_FORMA_PAGO]

IF @FORMA = 'Anual' or @FORMA = 'Semestral' or @FORMA = 'Trimestral' 
   select '1'

else
  IF @FORMA = 'Mensual' 
  Select '12'
  else

    IF @FORMA = 'Semanal' or @FORMA = 'Quincenal' or @FORMA = 'Catorcenal' or @FORMA = 'Diario' 
      Select '365'

Ahorita Le tengo el SET @FORMA = ‘ANUAL’ a modo de prueba pues creía que era que no me traía la información del campo pero me sigue arrojando error:

"1). [Microsoft][SQL Server Native Client 11.0][SQL Server]Incorrect syntax near the keyword ‘SELECT’.
2). [Microsoft][SQL Server Native Client 11.0][SQL Server]Statement ‘’ (SWEI) (s) could not be prepared. "

Si lo corro directo en SQL si me funciona. Seguramente es una pendejada, y después donde están los Select 1, select 12 y select 365 van un grupo de formulas y demás… pero primero necesito es que me lea el campo y me traiga algo sin error antes de ponerme a armar las fórmulas que van ahí adentro según los resultados xD

1 me gusta

Con el documento abierto en SAP B1, seleccionado como ventana activa, ve a Herramientas >> Consultas >> Query manager >> selecciona tu query.

Cuando haces esto, el sistema reemplazará la variable de formulario $[ORDR.U_CAMPO_X] por el valor que trae del formulario, con eso puedes depurar tu query para buscar el error.

Atte.

2 Me gusta

MMmmm el error me sigue apareciendo el mismo…

Explico un poquito lo que quiero hacer:

Tengo un campo de usuario donde se debe cargar el tipo de pago de cliente:

imagen

En base a eso existe otro campo que es donde tengo mi busqueda formateada que deberá realizar ciertos cálculos. Sin embargo ahorita no le tengo nada de las formulas ni nada así, solo quiero probar que cuando me sale una de esas opciones me da el resultado con un número (para saber que si está dando el resultado correcto.)

Sin embargo me sigue arrojando el mismo error: (este mensaje que pego aquí abajo es el que me arroja con los pasos que me recomendó Felipe.loyola)
"
1). [Microsoft][SQL Server Native Client 11.0][SQL Server]Incorrect syntax near the keyword ‘SELECT’.
2). [Microsoft][SQL Server Native Client 11.0][SQL Server]Statement ‘Documento’ (RDOC) (s) could not be prepared.
"
(imagen)

y el código en SQL si me funciona sin inconvenientes (comentando el segmento de $[ORDR.U_CAMPO_X])

Declare @FORMA as nvarchar (11)
set @FORMA = SELECT $[ORDR.U_FORMA_PAGO]

IF @FORMA = 'Anual' or @FORMA = 'Semestral' or @FORMA = 'Trimestral' 
   select '1'

else
  IF @FORMA = 'Mensual' 
  Select '12'
  else

    IF @FORMA = 'Semanal' or @FORMA = 'Quincenal' or @FORMA = 'Catorcenal' or @FORMA = 'Diario' 
      Select '365'
1 me gusta

Y no… No le encuentro el error al Query…

¿Alguno sabe que podría ser?

1 me gusta

Tan sencillo como esto

SELECT 
CASE 
	WHEN $[ORDR.U_FORMA_PAGO] = 'Anual' OR $[ORDR.U_FORMA_PAGO] = 'Semestral' OR $[ORDR.U_FORMA_PAGO] = 'Semestral' THEN '1'
	WHEN $[ORDR.U_FORMA_PAGO] = 'Mensual' THEN '12'
	ELSE '365'
END
3 Me gusta

Excelente… por alguna razón antes no me lo agarraba…

Ahora puedo continuar con la siguiente parte del query, (donde van los números van un poco de formulas más de cálculos, espero poder ponerme a realizar calculos y formulas con los Case When)

1 me gusta

Este tema se cerró automáticamente 7 días después del último post. No se permiten nuevas respuestas.