cancel
Showing results for 
Search instead for 
Did you mean: 

Discriminar un dato en Query

marco_ramirez
Active Contributor
0 Kudos

Buenos días

Tengo el siguiente Query para pagos recibidos, sin embargo al momento de totalizar el monto de los depósitos me doy cuenta que tengo datos que se repiten y esto es porque le agregue el detalle de facturas y por lo tanto por cada factura me dará una línea diferente no así con los montos de depósitos por ser el documento base.

Mi necesidad es que solo aparezca una vez el monto del depósito a pesar de tener varias facturas pagadas tomando en cuenta que los valores de depósitos salen de la misma tabla y he aquí donde encuentro algo de dificultad para hacer la discriminación.

Agradezco su ayuda

Saludos cordiales


SELECT

, T0.[DocDate]

, T3.[SeriesName]

, T0.[CardName]

, T0.[DocNum]

, T0.[TrsfrRef]

, [Depósito] = (Case When T1.[CheckSum] >= 0 Then '0' Else T0.[DocTotal] End)

, T1.[CheckNum]

,T1.[BankCode]

, T1.[CheckSum]

, T2.[DocNum]

FROM ORCT T0 

LEFT JOIN RCT1 T1 ON T0.DocEntry = T1.DocNum

LEFT JOIN OINV T2 ON T0.DocEntry = T2.ReceiptNum

INNER JOIN NNM1 T3 ON T0.Series = T3.Series

WHERE T0.[Canceled] Not in ('Y') and T0.[DocDate] Between [%0] and [%1] and  T3.[SeriesName] = [%2]

Accepted Solutions (0)

Answers (3)

Answers (3)

Former Member
0 Kudos

Estimado Marco puedes probar con este codigo:


SELECT T0.[DocDate]

, T3.[SeriesName]

, T0.[CardName]

, T0.[DocNum]

, T0.[TrsfrRef]  

, CASE T2.[InvoiceId]

      WHEN ' ' THEN T0.[DocTotal]

     ELSE '0.00 '

  END as 'Depósito'

, T1.[CheckNum]

,T1.[BankCode]

, T1.[CheckSum]

, T2.[DocEntry]'Doc. Factura'

, CASE T2.[InvType]

     WHEN '14' then (T2.[AppliedSys]*-1)

     ELSE T2.[AppliedSys]

  END  'Pagado por Factura' FROM ORCT T0

LEFT JOIN RCT1 T1 ON T0.DocEntry = T1.DocNum

LEFT JOIN RCT2 T2 ON T0.DocEntry = T2.DocNum

INNER JOIN NNM1 T3 ON T0.Series = T3.Series WHERE T0.[Canceled] Not in ('Y') and

T0.[DocDate] Between [%0] and [%1] and

T3.[SeriesName] = [%2]

Espero te sirva.

Saludos

Former Member
0 Kudos

A mi cuando me pasa eso trato de buscar en cual tabla hay un campo de Linenum, y agrego "where linenum = 0" para que solamente me ponga el primer dato.

La otra que puede ser, es usar el SELECT DISTINCT, pero no se si en tu caso funcionará porque no se si las líneas que se repiten tienen los mismos datos.

gerardo_mendez
Active Contributor
0 Kudos

Marco, una opción podría ser pasar tu query a Crystal Reports tomando en cuenta que en dicho reporteador podemos tratar con este tipo de requerimientos, no se si esto pueda ser una opción en tu caso.