on 04-05-2011 11:37 PM
Jovenes tengo el siguiente query este me refleja el saldo acumulado de las cuenta bancarias pero necesito realizar una sumatoria de otra tabla, y no se como realizarla. La sumatoria es de la jdt1 la columna Debit y Credit por separado.
Query
SELECT T0.[Account], T0.[AcctName], T1.[CurrTotal]
FROM DSC1 T0 INNER JOIN OACT T1 ON T0.GLAccount = T1.AcctCode INNER JOIN JDT1 T2 ON T1.AcctCode = T2.Account
GROUP BY T0.[Account], T0.[AcctName], T1.[CurrTotal]
Espero me puedan ayudar y disculpen las molestias soy un poco novato en esto.
Saludos y muy agradecido.
Solo agrega un sum(debit), sum(credit)
podrias visualizarlo mejor con un union
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hola,
Prueba esta consulta a ver si te sirve:
SELECT T0.[Account], T0.[AcctName], T1.[CurrTotal], TMP.Debe, TMP.Haber FROM
(SELECT T3.Account, sum(T3.Debit)Debe, sum (T3.Credit)Haber FROM JDT1 T3 group by T3.Account) TMP INNER JOIN
OACT T1 ON TMP.Account = T1.AcctCode INNER JOIN DSC1 T0 ON T0.[GLAccount] = T1.AcctCode
INNER JOIN JDT1 T2 ON T1.AcctCode = T2.Account
GROUP BY T0.[Account], T0.[AcctName], T1.[CurrTotal], TMP.Account, TMP.Debe, TMP.Haber
Saludos,
Tere
Buenos dias, Tere te lo agradezco en efecto era lo que necesitaba solo que necesito verlo por rango de fecha por ejemplo solo el de un dia.
Pude realizar este query pero lamentablemente no me deplega todos los banco solo los que tienen movimiento no se porque alguien me podria ayuda el indicarme porque solo me muestra las cuenta que tienen movimiento.
SELECT T0.[Account], T0.[AcctName], T1.[CurrTotal],
((SUM(T2.Debit)))AS 'Ingresos',
((SUM(T2.Credit)))AS 'Egresos'
FROM DSC1 T0 INNER JOIN OACT T1 ON T0.GLAccount = T1.AcctCode INNER JOIN JDT1 T2 ON T1.AcctCode = T2.Account
Where T2.[RefDate] >= [%0] and T2.[RefDate] <= [%1]
GROUP BY T0.[Account], T0.[AcctName], T1.[CurrTotal]
Gracias Mauricio te comento que lo intente hacer por medio de UNION pero me desplego el siguiente error All queries combined using a Union dejo el query para que me indiques en donde esta mi error.
SELECT T0.[Account], T0.[AcctName], T1.[CurrTotal]
FROM DSC1 T0 INNER JOIN OACT T1 ON T0.GLAccount = T1.AcctCode INNER JOIN JDT1 T2 ON T1.AcctCode = T2.Account
Where T2.[RefDate] >= [%0] and T2.[RefDate] <= [%1]
GROUP BY T0.[Account], T0.[AcctName], T1.[CurrTotal]
UNION
SELECT T0.[Account], T0.[AcctName], T1.[CurrTotal],
(((SUM(T2.Credit)+SUM(T1.CurrTotal))-SUM(T2.Debit))) as 'Saldo Inicial',
((SUM(T2.Debit)))AS 'Ingresos',
((SUM(T2.Credit)))AS 'Egresos'
FROM DSC1 T0 INNER JOIN OACT T1 ON T0.GLAccount = T1.AcctCode INNER JOIN JDT1 T2 ON T1.AcctCode = T2.Account
Where T2.[RefDate] >= [%0] and T2.[RefDate] <= [%1]
GROUP BY T0.[Account], T0.[AcctName], T1.[CurrTotal]
De antemano agradezco toda tu ayuda.
Lo que pasa es que cuando usas un UNION necesitas que los datos de las consultas, en este caso las 2 que estas uniendo sean los mismos tipos de datos y la misma cantidad de columnas
El union basicamente debe traerte unicamente el sum, el resto de las columnas puedes simplemente poner un
select '','','',sum(doctotal),sum(vatsum)
Asi
Hola,
Ese error te aparece porque al usar el UNION las condultas tienen que tener la misma cantidad de campos en el SELECT, en este caso basta con que los sustitutas en la primera consulta por '0'. Te la reenvío modificada:
SELECT T0.[Account], T0.[AcctName], T1.[CurrTotal], 0, 0, 0
FROM DSC1 T0 INNER JOIN OACT T1 ON T0.GLAccount = T1.AcctCode INNER JOIN JDT1 T2 ON T1.AcctCode = T2.Account
Where T2.[RefDate] >= and T2.[RefDate] <=
GROUP BY T0.[Account], T0.[AcctName], T1.[CurrTotal]
UNION
SELECT T0.[Account], T0.[AcctName], T1.[CurrTotal],
(((SUM(T2.Credit)+SUM(T1.CurrTotal))-SUM(T2.Debit))) as 'Saldo Inicial',
((SUM(T2.Debit)))AS 'Ingresos',
((SUM(T2.Credit)))AS 'Egresos'
FROM DSC1 T0 INNER JOIN OACT T1 ON T0.GLAccount = T1.AcctCode INNER JOIN JDT1 T2 ON T1.AcctCode = T2.Account
Where T2.[RefDate] >= and T2.[RefDate] <=
GROUP BY T0.[Account], T0.[AcctName], T1.[CurrTotal]
Saludos,
Tere
Gracias Mauricio, pero fijate que sigue dando el mismo error que es el siguiente:
Msg 205, Level 16, State 1, Line 1
All queries combined using a UNION, INTERSECT or EXCEPT operator must have an equal number of expressions in their target lists.
y el query hasta donde te entendi quedo asi
SELECT T0.Account, T0.AcctName, T1.CurrTotal
FROM DSC1 T0 INNER JOIN OACT T1 ON T0.GLAccount = T1.AcctCode INNER JOIN JDT1 T2 ON T1.AcctCode = T2.Account
Where T2.RefDate >= '20110406' and T2.RefDate <= '20110406'
GROUP BY T0.Account, T0.AcctName, T1.CurrTotal
UNION
SELECT '', '', '',
(((SUM(T2.Credit)+SUM(T1.CurrTotal))-SUM(T2.Debit))) as 'Saldo Inicial',
((SUM(T2.Debit)))AS 'Ingresos',
((SUM(T2.Credit)))AS 'Egresos'
FROM DSC1 T0 INNER JOIN OACT T1 ON T0.GLAccount = T1.AcctCode INNER JOIN JDT1 T2 ON T1.AcctCode = T2.Account
Where T2.RefDate >= '20110406' and T2.RefDate <= '20110406'
GROUP BY T0.Account, T0.AcctName, T1.CurrTotal
Gracias por ayuda y perdon por no entender este proceso.
Saludos
intentalo asi
select Account as 'Cuenta',AcctName as'Nombre',CurrTotal as 'saldo', [Saldo Inicial],[Ingresos],[Egresos] from (
SELECT T0.Account, T0.AcctName, T1.CurrTotal, 0 [Saldo Inicial],0 [Ingresos],0 [Egresos]
FROM DSC1 T0 INNER JOIN OACT T1 ON T0.GLAccount = T1.AcctCode INNER JOIN JDT1 T2 ON T1.AcctCode = T2.Account
Where T2.RefDate >= '20110101' and T2.RefDate <= '20110406'
GROUP BY T0.Account, T0.AcctName, T1.CurrTotal
UNION
SELECT T0.Account, T0.AcctName, T1.CurrTotal,
(((SUM(T2.Credit)+SUM(T1.CurrTotal))-SUM(T2.Debit))) [Saldo Inicial],
((SUM(T2.Debit)))[Ingresos],
((SUM(T2.Credit)))AS [Egresos]
FROM DSC1 T0 INNER JOIN OACT T1 ON T0.GLAccount = T1.AcctCode INNER JOIN JDT1 T2 ON T1.AcctCode = T2.Account
Where T2.RefDate >= '20110101' and T2.RefDate <= '20110406'
GROUP BY T0.Account, T0.AcctName, T1.CurrTotal
) a
Asi mejor
Edited by: Mauricio I Quintana on Apr 6, 2011 4:57 PM
Gracias Mauricio esta super el query y te agradezco por tu paciencia.
Solo una consulta y doy por terminado esta duda, el query que me proporcionate es de todo el año 2011 y si necesito verlo solo del dia ej. el dia de hoy, lo que hice fue colocarle la fecha del dia de hoy pero solo me muestra las cuentas que tiene movimiento y las que no tienen movimiento no las muestra por lo menos deveria mostrarme los saldos finales de la cuenta, pero no lo hace, se puede realizar esto o me estan pidiendo mucho.
Saludos y muy agardecido por tu ayuda.
User | Count |
---|---|
98 | |
11 | |
11 | |
6 | |
6 | |
4 | |
4 | |
3 | |
3 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.