我试图从数据库的开头到今年9月选择总帐帐户的余额。我对WHERE子句有困难。我需要捕获前几年的所有十二个月的数据,但仅截至2015年9月。数据库中没有发布日期属性。我的查询现在如何编写,它只返回每年的前9个月。
SELECT
t_leac AS LedgerAccount,
SUM(t_amnt) AS Debit,
t_dbcr AS debit_credit
FROM
ttfgld106100
WHERE
t_fyer <= 2015 and t_fprd IN ('1','2','3','4','5','6','7','8','9')
GROUP BY
t_leac,
t_dbcr
ORDER BY
t_leac;
由于
更新:
我运行了以下查询,并将t_fyer(数字)列的最小值检索为1999,并将t_fprd(数字)列的最小值检索为1.以下是结果:
t_fyer t_fprd
1999 1
1999 2
1999 3
.... ....
1999 13
2000 1
.... ....
SELECT DISTINCT
t_fyer,
t_fprd
FROM
ttfgld106100
ORDER BY
t_fyer, t_fprd
答案 0 :(得分:0)
我通过在select语句中添加子查询找到了我的问题的答案。我加入了这个表格,将2014年累计总额加到2014年,直到9月份增加了2015年的金额。作为参考,这是我的代码:
SELECT
a.t_leac AS LedgerAccount,
(SUM(a.t_amnt) + (SELECT SUM(b.t_amnt) FROM ttfgld106100 b WHERE b.t_fyer <=2014 and a.t_leac = b.t_leac)) AS Amount,
a.t_dbcr AS debit_credit
FROM
ttfgld106100 a
WHERE
a.t_fyer = 2015 and a.t_fprd IN ('1','2','3','4','5','6','7','8','9')
GROUP BY
a.t_leac,
a.t_dbcr
ORDER BY
a.t_leac;