在日期之前添加一列显示该ID的记录数

时间:2016-03-07 12:47:13

标签: sql sql-server sql-server-2008

我的表有一个名为START_DATE的列,其类型为datetime,id由ID表示。我想在START_DATE之前找到同一个表中的记录数。

这是我的尝试

select ID,count(*) from dbo.MyTable
where START_DATE < (select START_DATE from dbo.MyTable)
group by ID

但它不起作用。

1 个答案:

答案 0 :(得分:3)

这就是你想要的:

SELECT t.ID,t.start_date,max(t.OTHER_COLUMN),max(T.OTHER_COLUMN2)...,count(*) from dbo.MyTable t
INNER JOIN dbo.MyTable s
ON(t.id = s.id and t.start_date > s.start_date)
GROUP BY t.ID,t.start_date

或使用相关查询:

SELECT t.ID,
       t.start_date,
       t.OTHER_COLUMN,
       t.OTHER_COLUMN2,
       ......
       (SELECT COUNT(*) FROM dbo.MyTable s
        WHERE t.id = s.id and t.start_date > s.start_date)
FROM dbo.MyTable t