累积日期小于或等于期间日期 - T-SQL

时间:2015-10-15 14:31:19

标签: tsql date

我试图从数据库的开头到今年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

1 个答案:

答案 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;