cancel
Showing results for 
Search instead for 
Did you mean: 

Error al tratar de obtener valor de una tabla de usuario

Former Member
0 Kudos

Buenas tardes, estoy trabajando sobre SAP B1 y en el query manager quiero obtener el valor de una tabla de usuario, de esta manera:

/* SELECT FROM OINV T1 */

SET @DateFrom = /* T1.DocDate */ '[%0]'

set @DateTo = /* T1.DocDate */ '[%1]'

/select from .[@DETALLESUCURSAL] T2/

set @CardName = /* t2.Name */ '[%2]'

/* select from oslp t3 */

set @sVendedor = /* t3.SlpName */ '[%3]'

las líneas del select From Oinv y la final del select from oslp no marcan error, pero cuando le agrego la de la tabla de usuario:

/select from .[@DETALLESUCURSAL] T2/

set @CardName = /* t2.Name */ '[%2]'

me dice "Error:Must specify table to select from"

La pregunta es: De qué manera se trabajan las tablas de usuario ?

gracias por su ayuda....

Saludos cordiales,

Jorge

Accepted Solutions (1)

Accepted Solutions (1)

agustin_marcoscividanes
Active Contributor
0 Kudos

Hola

cuando utilices una tabla de usuario debes escribir el nombre entre corchetes .

Un saludo

Agustín Marcos Cividanes

Former Member
0 Kudos

gracias a ambos, de esta manera es como lo tengo ahorita, pero sigue sin funcionarme, las tablas las tengo dentro de corchetes, el dbo y el DetalleSucursal, al pasarlo acá al foro, no sé porqué los elimina....

declare @CardName as varchar(200),

@sPromoter as varchar(50)

/* SELECT FROM ICSV.DBO.OINV T1 */

SET @DateFrom = /* T1.DocDate */ '[%0]'

set @DateTo = /* T1.DocDate */ '[%1]'

/* select from .[@DetalleSucursal] T2 */

/* WHERE */

set @CardName = /* t2.Name */ '[%2]'

/* select from oslp t3 */

set @sVendedor = /* t3.SlpName */ '[%3]'

/* select from .[@DetalleSucursal] T4 */

/* WHERE */

set @sPromoter = /* t4.u_Promotora */ '[%4]'

gracias por su ayuda desinteresada,

Jorge

Edited by: jdiazportillo on Mar 8, 2012 9:20 PM

Former Member
0 Kudos

hice unos ejercicios y llegue al siguiente código


/* select from [dbo].[@DetalleSucursal] T4 */ declare @sPromoter varchar(50) /* WHERE */set @sPromoter = /* t4.u_Promotora */ '[%4]'
/* select from [dbo].[@DetalleSucursal] T2 */ declare @CardName varchar(200) /* WHERE */ set @CardName = /* t2.Name */ '[%2]'
/* SELECT FROM OINV T1 */ declare @DateFrom datetime /* WHERE */ SET @DateFrom = /* T1.DocDate */ '[%0]'
/* SELECT FROM OINV T1 */ declare @DateTo datetime /* WHERE */  set @DateTo = /* T1.DocdueDate */ '[%1]'
/* select from OSLP t3 */declare @svendedor varchar(100) /* WHERE */ set @svendedor = /* t3.SlpName */ '[%3]'

nota que tuve que reemplazar las variable spor que no me habpias puesto todas en tu mensaje inicial

haciendo los ejemplos me di cuenta que con esta forma de sintaxis, es case sensitive. El nombre de tus campos deben ir tal cual estan dados de alta en tu base de datos, así como los nombres de las variables

Saludos

Former Member
0 Kudos

perdón pero tuve que cambiarme en otras cosas y dejé pendiente esta parte... lo siento...

David, he aplicado el ejemplo que me distes y aún no me funcionaba, pero al cambiar el orden para pedir los parametros me funcionó...o sea... pedir el filtro de la tabla de usuario primero.. me explico...exactamente como tú lo has hecho... yo dejaba las tablas de usuario al final..

gracias a todos por su ayuda...

Answers (1)

Answers (1)

Former Member
0 Kudos

Te anexo un ejemplo de cómo lo uso yo, espero que te sea útil


/*SELECT FROM [dbo].[@clase] M0*/ declare  @M 	as VARCHAR (10) 	/* WHERE */ set @M =	/* M0.code		*/ '[%0]'  

SELECT T0.Code, T0.Name FROM [dbo].[@CLASE]  T0 where t0.code=@m

Saludos!!