Consulta cuentas contables sin movimientos

Buenos días,

Necesitaría conocer las cuentas contables que no han tenido movimientos durante el ejercicio 2020 (por ejemplo), para poder dejarlas INACTIVAS.

¿Alguien me puede comentar como podría hacer esto?

GRACIAS!

Hola @IvanFor, una opción es crear un reporte uniendo las tablas OACT (Catálogo) y JDT1 (Asientos) agregas en el where la fecha de asiento, así obtienes todas las cuentas que han tenido contabilizaciones a partir de una fecha.
Algo así:

SELECT T0.[AcctCode], T0.[AcctName], sum(T1.[Debit]) FROM OACT T0  LEFT JOIN JDT1 T1 ON T0.[AcctCode] = T1.[Account] WHERE T1.[RefDate] >=[%0] GROUP BY T0.[AcctCode], T0.[AcctName]
1 me gusta

Hola

la opción más sencilla es con una consulta SQL:

select acctcode, acctname from oact where acctcode not in (select account from jdt1 where year(duedate)=2020)

Un saludo

1 me gusta

Gracias por su respuesta.

En este caso me aporta también los títulos, debería solo conocer las cuentas contables del grupo 6, sin movimiento. ¿Qué debo añadir a la consulta?

Gracias por su respuesta!

En este caso me aporta también los títulos, debería solo conocer las cuentas contables del grupo 6, sin movimiento. ¿Qué debo añadir a la consulta?

Hola

utiliza el campo groupmask.

Ejecuta la siguiente consulta:
select acctcode, acctname, groupmask from oact where levels = 1

En la consulta del post anterior añade la condición group = valor, que será el valor que necesites obtenido en la consulta de arriba.

Un saludo

Me da error la consulta :frowning:

Lo que necesito es saber las cuentas del grupo 6 (gastos), que no han tenido movimientos contables durante un periodo determinada.

Disculpa por la insistencia, no dispongo de mucha experiencia en SQL.

GRACIAS!

Hola

prueba esta:

select acctcode, acctname from oact where groupmask= 4 and acctcode not in (select account from jdt1 where year(duedate) = 2020) and postable = ‘Y’

En mi base de datos devuelve gastos e ingresos. Si en tu caso no aparecen, cambia el 4 por otro valor (entre 1 y 10) hasta que aparezcan las cuentas correctas.

Un saludo

Me continua dando error :frowning:

Tengo esta consulta:

SELECT T0.[AcctCode], T0.[AcctName], T1.[RefDate] FROM OACT T0 INNER JOIN JDT1 T1 ON T0.[AcctCode] = T1.[Account] WHERE GROUPMASK=4 AND T1.[RefDate] >=’[%0]’ AND T1.[RefDate]<=’[%1]’

Me aporta las cuentas 6 durante el periodo que selecciono, hasta aqui todo bien…

Ahora me falta decirle a la consulta que me diga las cuentas que no han tenido movimiento contable durante el periodo que seleccione y listo…

MUCHAS GRACIAS!!!

Hola

select acctcode, acctname from oact where acctcode not in
(SELECT T0.[AcctCode], T0.[AcctName], T1.[RefDate] FROM OACT T0 INNER JOIN JDT1 T1 ON T0.[AcctCode] = T1.[Account] WHERE GROUPMASK=4 AND T1.[RefDate] >=’[%0]’ AND T1.[RefDate]<=’[%1]’)

Un saludo

No hay manera… Me da error… ¿Me la puedes copiar como seria toda la consulta continua?

Gracias de nuevo

Hola

esta es la consulta completa:

select acctcode, acctname from oact where acctcode not in
(SELECT T0.[AcctCode], T0.[AcctName], T1.[RefDate] FROM OACT T0 INNER JOIN JDT1 T1 ON T0.[AcctCode] = T1.[Account] WHERE GROUPMASK=4 AND T1.[RefDate] >=’[%0]’ AND T1.[RefDate]<=’[%1]’)

La he copiado y pegado directamente, y me da error…

Sorry

select acctcode, acctname from oact where acctcode not in
(SELECT T0.[AcctCode] FROM OACT T0 INNER JOIN JDT1 T1 ON T0.[AcctCode] = T1.[Account] WHERE GROUPMASK=4 AND T1.[RefDate] >=’[%0]’ AND T1.[RefDate]<=’[%1]’)

No hay manera… jajaja! Me continua dando error… ¿Puede ser por el tema de paréntesis o comillas?

Hola

el generador de consultas de SBO no es una maravilla, y a veces al traducir la consulta se atraganta. Prueba a cambiar los valores que pides por pantalla por las fechas que introduces: quita los corchetes y escribe la fecha de inicio y de fin.

Un saludo

1 me gusta

He probado de esta manera:

SELECT T0.[AcctCode], T0.[AcctName], T1.[RefDate] FROM OACT T0 INNER JOIN JDT1 T1 ON T0.[AcctCode] = T1.[Account] WHERE GROUPMASK = 4 AND T1.[RefDate] >=[%0] AND T1.[RefDate]<=[%1]

SELECT T0.[AcctCode], T0.[AcctName] FROM OACT WHERE T0.[AcctCode] NOT IN

No me deja…

Sigo sin lograr que funcione :frowning:

Hola

si copias y pegas esta consulta:

select acctcode, acctname from oact where acctcode not in
(SELECT T0.[AcctCode] FROM OACT T0 INNER JOIN JDT1 T1 ON T0.[AcctCode] = T1.[Account] WHERE GROUPMASK=4 AND T1.[RefDate] >=’2020/01/01’ AND T1.[RefDate]<=’2020/12/01’)

¿Sale algún error?