Estoy realizando un Query que me de las cuentas de mayor de los articulos, pero cuando agrego la tabla OACT de la cuenta de mayor realiza bien el INNER, pero cuando lo ejecuto me indica que no encuentra ningun valor, cuando si hay valores, me podrían orientar?
Gracias!!
SELECT
T1.[Dscription],
T2.[FormatCode]
FROM OPRQ T0
INNER JOIN PRQ1 T1 ON T0.[DocEntry] = T1.[DocEntry]
INNER JOIN OACT T2 ON T0.[CtlAccount] = T2.[AcctCode]
Gracias por responder, estoy involucrando las cuentas porque voy a meter un TN, si el usuario realiza una solicitud de compra y este articulo no tiene cuenta de mayor, no permita grabar el documento.
No es necesario involucrar el plan de cuentas, valida sobre documento a nivel linea, no olvides que la cuenta de existencias es un valor obligatorio en la determinación de cuentas de mayor por almacén y por grupo de artículos (no recuerdo en la determinación de cuentas de mayor ampliada), creo que en todo momento tu articulo tendrá cuenta, si es no inventariable va y le pega a la cuenta de gastos, verifica esta cuenta.
Explico un poco mas la problemática, es para los documentos de tipo servicio, tenemos una tabla en la parte de descripción, pero a veces los usuarios no usan esta tabla y teclean directamente la descripción, y con esto no se jala la cuenta contable y se dan cuenta hasta que llega a contabilidad, por eso quería meter la TN, que cuando la cuenta de mayor es NULL, no permita grabar el documento
Entonces no es un articulo, es un servicio, en estos no hay cuenta contable por default, desde mi punto de vista será mejor validar que la descripción sea igual a algún valor de tu tabla, no ?, pero si quieres validar el campo de Cuenta de mayor, quedaría así:
declare @cuentaMayor as nvarchar (15)
if @object_type = '1470000113' and @transaction_type = 'A'
begin
Select @cuentaMayor = T1.AcctCode
From OPRQ T0
INNER JOIN PRQ1 T1 ON T0.[DocEntry] = T1.[DocEntry]
Where T0.DocEntry = @list_of_cols_val_tab_del
if @cuentaMayor is null
begin
set @error = 1
set @error_message = 'Falta la Cuenta de Mayor'
end
end
declare @cuentaMayor as nvarchar (15) = ''
if @object_type = '1470000113' and @transaction_type IN ('A', 'U')
begin
SET @cuentaMayor = (Select T1.AcctCode
From OPRQ T0
INNER JOIN PRQ1 T1 ON T0.[DocEntry] = T1.[DocEntry]
Where T0.DocEntry = @list_of_cols_val_tab_del)
if (@cuentaMayor is null OR @cuentaMayor = '')
begin
set @error = 1
set @error_message = 'Falta la Cuenta de Mayor'
end
end