计算SQL中连续捐赠的年数

时间:2018-09-18 15:01:45

标签: sql-server

我有一些捐赠示例记录:

ID交易日期金额
10 2001-12-19 00:00:00.000 75.00
10 2001-07-11 00:00:00.000 760.00
10 2010-10-15 00:00:00.000 2200.00
10 2012-08-15 00:00:00.000 1220.00
10 2013-09-16 00:00:00.000 610.00
100 2000-09-26 00:00:00.000 3000.00
100 1999-01-01 00:00:00.000 5000.00

我正在尝试按捐助者逐年汇总捐赠情况。总数不必连续几年,而仅是给定总数的总数。总数不必等于每年的交易次数,只需ID是在特定年份捐赠的即可。

例如,上面的ID 10等于4,表示在4个日历年内捐款(2001年为2笔捐款,2010年为1笔捐款,2012年为1笔捐款,2013年为1笔捐款)。 ID 100等于2。

这些捐赠可以追溯到很多年,因此硬编码日期并不是很可行。

任何想法都值得赞赏。

2 个答案:

答案 0 :(得分:0)

尝试一下:

SELECT ID, DATEPART(yy,TransactionDate) Year, COUNT(*)
FROM tableName
GROUP BY ID, DATEPART(yy,TransactionDate)

答案 1 :(得分:0)

您只需要返回然后在数据的相关部分上 +--------------+ | pia | | | | | +-----+ +------+ | | +------+ | | | |eth0 | veth1<----+ +----------> veth2| | | +------+ | | | | | +-----+ | | +------+ | +--v-----+ +----v---+ | | | | | | | | |br-veth1| |br-veth2| +--------------+ +-----------------------+ | br0 | +-----------------------+ ,即Newtonsoft.Json.JsonConvert.SerializeObject(someVariable) 的{​​{1}}和group

ID