Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 添加一列,显示日期之前该ID的记录数_Sql_Sql Server_Sql Server 2008 - Fatal编程技术网

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

Sql 添加一列,显示日期之前该ID的记录数,sql,sql-server,sql-server-2008,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 但它不起作用。这是您想要的: SELECT t.ID,t.start_date,max(t.OTHER_COLUMN),

我有一个表,它有一个名为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
但它不起作用。

这是您想要的:

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

请编辑您的问题,并包括样本数据和期望的结果。这个问题没有真正意义。如果一个人有多个记录,那么这个人大概有多个开始日期。效果很好。但正是这样,我想选择/显示t/s中的所有其他列。基本上,我想添加一个新列。当我执行select t.*、t.patient\u IEN、t.admission\u DATE之类的操作时,它给出的列“dbo.someothercol”在select列表中无效,因为它既不包含在聚合函数中,也不包含在GROUP BY子句中。我如何编辑它以同时显示其他列?@PepperBoy我已经更新了我的解决方案,两个解决方案都应该有效,第二个肯定有效。我还有一个问题。我有一系列相同Id的开始日期,同时显示其他列,我想添加一个新列,用于查找Idperson的开始日期和他的下一个开始日期之间的差异。我试着这样做:选择t.Id,t.START_DATE,从dbo.MyTable t内部连接dbo.MyTable s ONt.Id=s.Id和t.START_DATE>s.START_DATE组按t.patient_Id,t.START_DATE请发布一个新的问题,像这样很难阅读和理解,问题已经结束了。好的,我们在这里添加了它