Paso de parametros Query Manager(HANA)

hana
Etiquetas: #<Tag:0x00007f652e138bd0>

#1

Hola a todos,
estoy haciendo unas pruebas en HANA(SAP B1) en especifico en query manager y al agregar un filtro de fecha la query no me arroja resultados, he probado en el WHERE de distintas maneras pero sin resultados positivos… si alguno me puede indicar cual es el problema??

Declare DateF timestamp;
DateF := (select T0."DocDate" from [dbo].[ORCT] T0 where T0."DocDate" >= '[%0]');

SELECT 
T1."SeriesName"  "Serie",

T0."DocNum" "No. Pago",
T0."CardCode" "Código Cliente",
T0."CardName" "Nombre Cliente"
T0.DocDate 'Fecha Pago'

FROM ORCT T0
INNER JOIN NNM1 T1 ON T0."Series" = T1."Series"

WHERE T0."Canceled"  = 'N'
AND T0."DocDate"  >=   '[%0]'

#2

Buenas @bfierro,

Has probado a realizar la consulta desde el generador de consulta de SAP con solo la tabla ORCT y su condición. Así luego puedes agregar el join.

Un saludo!


#3

Prueba cambiando en la siguiente linea el operador >= por =

DateF := (select T0."DocDate" from [dbo].[ORCT] T0 where T0."DocDate" = '[%0]');

Alli debe estar el problema.

Tambien en el WHERE puedes colocar:

WHERE T0."Canceled"  = 'N'
AND T0."DocDate"  >=  DateF 

Pero lo importante es la asignacion de la variable DateF

El otro tema, como te dice @Charlei117, debes verifica que la condicion del join este retornando registros.

Saludos.


#4

Hola Gabriel.

Acote la consulta a lo básico ya que la query completa tiene varios join, pero aun así no funciona, el parámetro me lo pide de forma correcta pero en el where tengo el problema ya que hana no me lo esta tomando. La query es correcta ya que en hana studio funciona 100%.

Me imagino que hana permite este tipo de filtros en query manager al igual que en sql, por lo ultimo que me quedaría es crear un @proc y este llamarlo desde query manager y enviar los parámetros necesarios.+
Saludos

Se te ocurre otra forma, o quizás estoy omitiendo algo…

Declare DateF varchar(10);
DateF := (select I0."DocDate" from ORCT I0 where I0."DocDate" = '[%0]');

SELECT 
T0."DocNum"
FROM ORCT T0
WHERE  T0."DocDate"  >=   DateF

BF


#5

No tengo HANA para probar con exactitud, pero si un par de observaciones sobre el parametro de la query.

La variable DateF debe ser de tipo fecha (DateTime o timestamp dependiendo de la BD) y esta solo retorna un valor cuando la consulta que la alimenta tiene al menos 1 registro (TOP 1).

En tu caso prueba lo siguiente parea ver si retorna algun registro:

Declare DateF timestamp;
DateF := (select T0."DocDate" from [dbo].[ORCT] T0 where T0."DocDate" = '[%0]');

SELECT DateF 

O Tambien

Declare DateF timestamp;
DateF := (select T0."DocDate" from [dbo].[ORCT] T0 where T0."DocDate" = '[%0]');

SELECT '[%0]'

#6

Thanks por los Tips.

saludos

BF


#7

Estimado, recuerda que en vez de decir “gracias…” (y nada más), puedes valorar la ayuda de los compañeros dandole clic a :heart: en cada mensaje, y cerrar el debate con el :ballot_box_with_check: sobre la respuesta que más te ayudó, o bien publicar tu propia respuesta y marcarla como solución.

Ayudanos a mantener la comunidad limpia y ordenada, también es tuya!


#8

yo lo hubiera sacado con un reporte de crystal :stuck_out_tongue: mas rápido y mas sencillo saludos :smiley:


#9

Hola Sidv…

aun no cierro el tema, estoy probando opciones aún.

Saludos

BF


#10

Hola,.

jajaja tienes razón es una buena opción , pero estoy ensimismado con la query…

Saludos


#11

yo primero genero un query y después lo meto como comando en crystal, solo que yo no se usar parámetros en query por eso te decía del crystal jajaja.

PD: yo también trabajo con Hana.


#12

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