cancel
Showing results for 
Search instead for 
Did you mean: 

Ayuda con una query utilizando el UNION ALL

Former Member
0 Kudos

Jovenes experto tengo el siguiente problema necesito realizar un query en donde me refleje el movimiento de 6 cuentas bancarias en forma resumida, yo habia pensado en utilizar el JDT1 ya que ahi estan los movimiento, claro con DSC1 que es en donde estan almacenas las cuentas bancaria y el nombre del banco y claro otras tablas para que pueda visualizar la informacion.

Hice una query sencilla con todas las tablas implicadas y me da la informacion imcompleta solo me muestra el movimiento de 2 bancos y hasta donde revise deverian de ser 3 los que tienen movimiento en un rango de fecha.

El query es

 SELECT T2.[Account], T0.[RefDate], T0.[TransId],T0.[Ref2],  T0.[LineMemo], 
	   T0.[Credit], T0.[Debit], T1.[CurrTotal], T2.AcctName, T2.Account
FROM JDT1 T0 INNER JOIN OACT T1 
	 ON T0.Account = T1.AcctCode INNER JOIN DSC1 T2 
	 ON T1.AcctCode = T2.GLAccount INNER JOIN OVPM T3 
	 ON T1.AcctCode = T3.CashAcct INNER JOIN ODPS T4
	 ON T1.AcctCode = T4.BanckAcct INNER JOIN OJDT T5 
	 ON T0.TransId = T5.TransId 
WHERE T0.[RefDate] >= '20110513' AND  T0.[RefDate] <= '20110513'
GROUP BY T2.[Account], T0.[RefDate], T0.[TransId],T0.[Ref2],  T0.[LineMemo], 
		 T0.[Credit], T0.[Debit], T1.[CurrTotal], T2.AcctName, T2.Account 

Como no me funciono pense en utilizar el UNION ALL y en el where le agregue un campo en donde me diferencia por medio de banco pero no funciono, me desplego solo los movimiento de banco llamado Vivibanco Monetario

La query es

SELECT T2.[Account], T0.[RefDate], T0.[TransId],T0.[Ref2],  T0.[LineMemo], 
	   T0.[Credit], T0.[Debit], T1.[CurrTotal], T2.AcctName, T2.Account
FROM JDT1 T0 INNER JOIN OACT T1 
	 ON T0.Account = T1.AcctCode INNER JOIN DSC1 T2 
	 ON T1.AcctCode = T2.GLAccount INNER JOIN OVPM T3 
	 ON T1.AcctCode = T3.CashAcct INNER JOIN ODPS T4
	 ON T1.AcctCode = T4.BanckAcct INNER JOIN OJDT T5 
	 ON T0.TransId = T5.TransId 
WHERE T0.[RefDate] >= '20110501' AND  T0.[RefDate] <= '20110513' AND  T2.[AcctName]  ='Vivibanco Monetario' 

union all

SELECT T2.[Account], T0.[RefDate], T0.[TransId],T0.[Ref2],  T0.[LineMemo], 
	   T0.[Credit], T0.[Debit], T1.[CurrTotal], T2.AcctName, T2.Account
FROM JDT1 T0 INNER JOIN OACT T1 
	 ON T0.Account = T1.AcctCode INNER JOIN DSC1 T2 
	 ON T1.AcctCode = T2.GLAccount INNER JOIN OVPM T3 
	 ON T1.AcctCode = T3.CashAcct INNER JOIN ODPS T4
	 ON T1.AcctCode = T4.BanckAcct INNER JOIN OJDT T5 
	 ON T0.TransId = T5.TransId 
WHERE T0.[RefDate] >= '20110513' AND  T0.[RefDate] <= '20110513' AND  T2.[AcctName]  ='G&T ADMINISTRACION' 
GROUP BY T2.[Account], T0.[RefDate], T0.[TransId],T0.[Ref2],  T0.[LineMemo], 
		 T0.[Credit], T0.[Debit], T1.[CurrTotal], T2.AcctName, T2.Account

Espero me haya dado a entender y si me pudiera ayudar se los agradeceri bastante, y disculpen las molestas dado que no soy muy habil con el SQL.

Saludos cordiales

Accepted Solutions (1)

Accepted Solutions (1)

felipe_loyolarodriguez
Active Contributor
0 Kudos

Pruabla asi


SELECT T0.[Account], T0.[RefDate], T0.[TransId], T0.[Ref2], T0.[LineMemo], T0.[Credit], T0.[Debit], T1.[CurrTotal], T2.[AcctName], T2.[Account] 
FROM [dbo].[JDT1]  T0 
INNER JOIN [dbo].[OACT]  T1 ON T0.Account = T1.AcctCode 
INNER JOIN [dbo].[DSC1]  T2 ON T2.GLAccount = T1.AcctCode
WHERE T0.RefDate BETWEEN '[%0]' AND '[%1]'

Slds

Former Member
0 Kudos

Gracias Floyola me devolvio lo que necesitaba. Voy a estudia un poco mas del Between.

Gracias nuevamente te lo agradezco

felipe_loyolarodriguez
Active Contributor
0 Kudos

El problema no era el between

Eran las tablas OVPM y ODPS, no las necesitabas en tu query

Slds

Former Member
0 Kudos

Gracias por la aclaracion

Answers (0)