cancel
Showing results for 
Search instead for 
Did you mean: 

Query balance terceros detallado.

former_member188716
Participant
0 Kudos

Buenas tardes compañeros, estoy haciendo una consulta tipo balance terceros, el problema es que no tengo datos de retenciones en los asientos contables, entonces he tenido que buscar los impuestos directamente en la tabla de retenciones y tengo el siguiente Query

El problema es que me muestra duplicado los datos de las cuentas de retenciones, precisamente aquellas cuentas de las cuales traigo los códigos de impuesto, me pueden ayudar con el dilema?

muchas gracias

SELECT DISTINCT 
T1."ShortName" AS "Cuenta de Mayor/Còdigo SN", 
CASE
WHEN T2."AcctName" = 'CLIENTE  NACIONALES MOLINO' THEN T3."CardName"
ELSE T2."AcctName"
END AS "Cuenta de Mayor/Nombre SN",
T1."Account",
CAST(T0."RefDate" AS DATE) AS "F. Contabilizaciòn",
T1."Debit" AS "Dèbito", 
T1."Credit" AS "Crèdito", 
(T1."Debit" - T1."Credit") AS "Saldo",
T1."Project" AS "Proyecto",
T1."ProfitCode" AS "Centro de Producciòn",
T1."OcrCode2" AS "Planta 1",
T1."OcrCode3" AS "Vendedor",
T1."OcrCode4" AS "Planta 2",
T1."OcrCode5" AS "Marca",
T1."U_InfoCo01" AS "COD SN",
T4."CardName",
SUBSTRING(IFNULL(CASE T1."TransType" 
WHEN 15 THEN 'Ventas - Entrega' 
WHEN 16 THEN 'Ventas - Devoluciones'
WHEN 203 THEN 'Ventas - Anticipos' 
WHEN 13 THEN 'Ventas - Facturas' 
WHEN 14 THEN 'Ventas - Nota Credito'
WHEN 132 THEN 'Ventas - Factura Correccion' 
WHEN 20 THEN 'Compras - Recibo de Mercancia'
WHEN 21 THEN 'Compras - Devoluciones' 
WHEN 204 THEN 'Compras - Anticipos' 
WHEN 18 THEN 'Compras - Facturas'
WHEN 19 THEN 'Compras - Nota Credito' 
WHEN 69 THEN 'Compras - Costos Importacion' 
WHEN 163 THEN 'Compras - Factura Correccion'
WHEN 24 THEN 'Pagos Recibidos' 
WHEN 25 THEN 'Depositos' 
WHEN 46 THEN 'Pagos Efectuados' 
WHEN 57 THEN 'Cheques para el pago'
WHEN 76 THEN 'Depositos Posfechados' 
WHEN -2 THEN 'Apertura Periodo' 
WHEN -3 THEN 'Cierre Periodo' 
WHEN 30 THEN CASE IFNULL(T1."TransCode",'')
			WHEN '' THEN 'Registro de Diario' 
			ELSE  (SELECT T6."TrnsCodDsc" FROM "OTRC" T6 WHERE T6."TrnsCode" = T1."TransCode") END
WHEN 58 THEN 'Conteo de Inventario' 
WHEN 59 THEN 'Inventario - Entrada' 
WHEN 60 THEN 'Inventario - Salida'
WHEN 67 THEN 'Inventario - Transferencia' 
WHEN 202 THEN 'Orden de Produccion' 
WHEN 10000071 THEN 'Upgrade Inventario'
WHEN 162 THEN 'Revalorizacion' 
WHEN 321 THEN 'Reconciliacion multisocio' 
WHEN -5 THEN 'Registro Upgrade' 
ELSE 'Otra' END,''),1,50) AS "Tipo_Transacciòn",


T1."TransId" AS "Transacciòn",
T1."Line_ID" AS "Linea Transacciòn",
T1."LineMemo" AS "Comentarios",  
T1."BaseRef" AS "Documento", 
T1."LicTradNum" AS "NIT",


CASE WHEN T12."Account" = T1."Account" AND  T12."U_Base_ML" IS NOT NULL AND T12."U_Base_ML" <> 0 THEN  T12."U_Base_ML" 
WHEN T22."Account" = T1."Account"  AND T22."U_Base_ML" IS NOT NULL AND T22."U_Base_ML" <> 0 THEN T22."U_Base_ML"  
WHEN T32."Account" = T1."Account" AND T32."U_Base_ML"  IS NOT NULL  AND T32."U_Base_ML" <> 0 THEN  T32."U_Base_ML" 
WHEN T42."Account" = T1."Account" AND T42."U_Base_ML"  IS NOT NULL AND T42."U_Base_ML" <> 0 THEN  T42."U_Base_ML" 
ELSE 
T1."U_BaseRet" 
END 
AS "Base Retenc.", 




CASE WHEN T12."Account" = T1."Account" AND T12."WTCode"  IS NOT NULL THEN  T12."WTCode" 
WHEN T22."Account" = T1."Account" AND T22."WTCode"  IS NOT NULL THEN  T22."WTCode"
WHEN T32."Account" = T1."Account" AND T32."WTCode"  IS NOT NULL THEN  T32."WTCode"
WHEN T42."Account" = T1."Account" AND T42."WTCode"  IS NOT NULL THEN  T42."WTCode"
ELSE 
T1."U_CodRet"
END 
AS "Cod. Retenc.", 


CASE WHEN T12."Account" = T1."Account" AND T12."U_Tarifa" IS NOT NULL THEN  T12."U_Tarifa"
WHEN T22."Account" = T1."Account" AND T22."U_Tarifa" IS NOT NULL THEN  T22."U_Tarifa"
WHEN T32."Account" = T1."Account" AND T32."U_Tarifa" IS NOT NULL THEN  T32."U_Tarifa"
WHEN T42."Account" = T1."Account" AND T42."U_Tarifa" IS NOT NULL THEN  T42."U_Tarifa"
ELSE
T1."U_TarifaRet"
END 
AS "Tarifa Retenc."




FROM OJDT T0 
INNER JOIN JDT1 T1 ON T0."TransId" = T1."TransId" 
INNER JOIN OACT T2 ON T1."Account" = T2."AcctCode"
LEFT JOIN OCRD T3 ON T1."ShortName" = T3."CardCode"
LEFT JOIN OCRD T4 ON T1."U_InfoCo01" = T4."CardCode"


LEFT JOIN OINV T11 ON T0."TransId" = T11."TransId"
LEFT JOIN INV5 T12 ON T11."DocEntry" = T12."AbsEntry"


LEFT JOIN ORIN T21 ON T0."TransId" = T21."TransId"
LEFT JOIN RIN5 T22 ON T21."DocEntry" = T22."AbsEntry"


LEFT JOIN OPCH T31 ON T0."TransId" = T31."TransId"
LEFT JOIN PCH5 T32 ON T31."DocEntry" = T32."AbsEntry"


LEFT JOIN ORPC T41 ON T0."TransId" = T41."TransId"
LEFT JOIN RPC5 T42 ON T41."DocEntry" = T42."AbsEntry"


WHERE T0."RefDate" >= '2018-01-01'
AND T0."RefDate" <= '2018-12-31'
AND T1."Account" >= '23683001'
AND T1."Account" <= '23683030'


ORDER BY T1."TransId"


Accepted Solutions (1)

Accepted Solutions (1)

former_member188716
Participant
0 Kudos

Se soluciona ocultando los duplicados en Crystal report.

Answers (1)

Answers (1)

agustin_marcoscividanes
Active Contributor
0 Kudos

Hola

yo quitaría uno de los join con la tabla OCRD, y en la condición del join con la tabla OACT utilizaría también el campo shortname de la tabla JDT1.

Un saludo

Agustín

former_member188716
Participant
0 Kudos

Agustin gusto verte

El campo T1."U_InfoCo01" no lo puedo quitar ya que es campo de localización colombia y el segundo punto que propones no lo entiendo: (y en la condición del join con la tabla OACT utilizaría también el campo shortname de la tabla JDT1.)

Como puede ver hay 2 asociaciones con la tabla OCRD, una se hace con el campo T1."U_InfoCo01"
y la otra con el campo T1."ShortName".

Me puedes explicar por favor esa segunda opción que propones, muchas gracias.

agustin_marcoscividanes
Active Contributor
0 Kudos

Hola

el campo shortname contiene el código del socio de negocio si la cuenta es asociada, y el código de la cuenta contable si no lo es.

Un saludo

Agustín