Problemas al agrupar detalle factura y sus pagos

Buenas tardes, estoy realizando un query que muestre todos los pagos asociados a una factura, al pasarlo a crystal me agrupa todo los pagos que tenga por cada item de la factura por ejemplo:

El que dice total de factura me lo coloca tantos pagos tenga esa factura, y realmente quiero ver el detalle una sola vez, e intente agruparlo pero igual me lo divide.

Quiero ver los pagos de la factura y que se vendio.

Aqui me codigo:

SELECT distinct 
t0."TaxDate",     
t0."DocTotal", 
t0."DocTotalFC",
T1."SumApplied",
t1."AppliedFC",
T4."Dscription", 
t4."Quantity", 
t4."Price", 
t4."TotalFrgn",
t4."LineTotal", 
t4."Currency",
t6."DocNum", 
t6."FolioNum", 
t6."TaxDate", 
t6."BaseAmnt",
t6."BaseAmntFC",
t6."DocTotal",
t6."DocTotalFC",
t6."DpmAmntFC",
t6."CardCode",
t6."CardName", 
t7."CardCode", 
t7."CardName", 
t7."TaxDate",
t7."NumAtCard" 
FROM ORCT T0  
INNER JOIN RCT2 T1 ON T0."DocEntry" = T1."DocNum" 
inner join inv1 t4 on T1."DocEntry" = T4."DocNum"
inner join oinv t6 on T6."DocEntry" = T4."DocEntry"
inner join dln1 t16 on t16."TrgetEntry" = t4."DocEntry" AND T16."DocEntry" = T4."BaseEntry"
inner join odln t17 on t16."DocEntry" = t17."DocEntry"
inner join rdr1 t5 ON T5."LineNum" = T16."BaseLine" AND T5."DocEntry" = T16."BaseEntry"
inner join ordr t7 on T7."DocEntry" = T5."DocEntry" 
inner join ocrd t14 on T14."CardCode" = T7."CardCode"
Where t6."Indicator" <> 'AN'  and t6."Indicator" <> 'DI' and t0."JrnlMemo" <>  'Cancelado' and  t6."FolioNum" > 0 and t14."ListNum" = '10'

Por favor ayuda. Gracias

Hola

en el Crystal puedes indicar que se oculten los valores repetidos; sobre el campo, muestra las propiedades del campo y busca esta opción.

Un saludo
Agustín

1 me gusta

Hola Marcos. Gracias, pero no me funciona. :frowning:

Primero yo cambiaria un poco el query, ya que del detalle del pago efectuado osea RCT2 T1 LEFT JOIN OINV T6 ON T1.DocEntry = T6.DocEntry AND T1.InvType = T6.ObjType y luego la de detalle de la factura LEFT JOIN INV1 T5 ON T5.DOCENTRY = T6.DOCENTRY, ahora bien para que no se te repitan valores existe una solucion en sql server del 2012 en adelante:
(t6.DocTotal - ISNULL(LAG( t6.DocTotal ) OVER( PARTITION BY T6.DocEntry ORDER BY T6.DocEntry ),0)) as TotalFac, esto va a hacer que te lo muestre solo una vez, prueba primero en el queri y me cuentas

Buenos días,

Si no quieres/puedes cambiar la consulta SQL puedes hacerlo a nivel de CrsytalReports.

-Elimina el campo de total factura.
-Crea un campo de total acumulado y en el tipo de resumen pon máximo/mínimo ya que será el mismo. Y en la sección de establecer pones al cambiar de grupo por DocNum (identificador de factura).
-Coloca tu campo creado en el pie de cada agrupación por factura.

Un saludo

Hola gracias por tu ayuda, la verdad logre colocar solo max por monto de la factura, pero igual me repite la descripcion. :frowning: la verdad ya no se como acomodarlo.
Alguna otra sugerencia?
De antemano gracias.
Saludos.

Gracias Ricardo.
Lo intentare y te aviso a ver que tal me quedo.
Saludos

Listo… Así me funciono. coloco el codigo por si a alguien le puede servir.
Le agregue desde la orden hasta las facturas.

SELECT distinct

t0.“TaxDate”,
t4.“Quantity”,
t4.“Dscription”,
t6.“DocNum”,
(t6.“DocTotalFC” - IFNULL(LAG( t6.“DocTotalFC”) OVER( PARTITION BY T6.“DocEntry” ORDER BY T6.“DocEntry” ),0)) as TotalFac,
t6.“PaidFC”,
t4.“PriceAfVAT”,
t6.“CardName”,
t6.“CardCode”,
t6.“FolioNum”,
t8.“DocNum”,
t8.“TaxDate”,
t8.“NumAtCard”
FROM RCT2 T1
INNER JOIN ORCT T0 ON T0.“DocNum” = T1.“DocNum”
left join oinv t6 on T1.“DocEntry” = T6.“DocEntry” AND T1.“InvType” = T6.“ObjType”
LEFT join inv1 t4 on T4.“DocEntry” = T6.“DocEntry”
LEFT join dln1 t17 on t17.“TrgetEntry” = t6.“DocEntry”
left join rdr1 t7 on T7.“TrgetEntry” = T17.“DocEntry”
left join ordr t8 on T7.“DocEntry” = T8.“DocEntry”
left join ocrd t14 on T14.“CardCode” = T6.“CardCode”
Where t6.“Indicator” <> ‘AN’ and t6.“Indicator” <> ‘DI’ and t6.“FolioNum” > 0 and t0.“JrnlMemo” <> ‘Cancelado’
and t6.“FolioNum” > 0
and t14.“ListNum” = ‘10’ and t8.“DocNum” > 0

union all

SELECT distinct

t0.“TaxDate”,
t4.“Quantity”,
t4.“Dscription”,
t6.“DocNum”,
(t6.“DocTotalFC” - IFNULL(LAG( t6.“DocTotalFC”) OVER( PARTITION BY T6.“DocEntry” ORDER BY T6.“DocEntry” ),0)) as TotalFac,
t6.“PaidFC”,
t4.“PriceAfVAT”,
t6.“CardName”,
t6.“CardCode”,
t6.“FolioNum”,
t8.“DocNum”,
t8.“TaxDate”,
t8.“NumAtCard”
FROM RCT2 T1
INNER JOIN ORCT T0 ON T0.“DocNum” = T1.“DocNum”
left join odpi t6 on T1.“DocEntry” = T6.“DocEntry” AND T1.“InvType” = T6.“ObjType”
LEFT join dpi1 t4 on T4.“DocEntry” = T6.“DocEntry”
LEFT join dln1 t17 on t17.“TrgetEntry” = t6.“DocEntry”
left join rdr1 t7 on T7.“TrgetEntry” = T17.“DocEntry”
left join ordr t8 on T7.“DocEntry” = T8.“DocEntry”
left join ocrd t14 on T14.“CardCode” = T6.“CardCode”
Where t6.“Indicator” <> ‘AN’ and t6.“Indicator” <> ‘DI’ and t6.“FolioNum” > 0 and t0.“JrnlMemo” <> ‘Cancelado’
and t6.“FolioNum” > 0 and t8.“DocNum” > 0 and t14.“ListNum” = ‘10’

Saludos y mil gracias.

1 me gusta