TableA
{
Id int PK
Projid varchar(20)
}
TableB{
Id int PK
Projid varchar(20) FK
Content text
Addtime datetime
}
两个表结构类似这样的,B表中的Projid在A表中一定存在,但在B表中不唯一,实际上B表中的projid是从A表中提取过去的。
比方说要写工程日志,那么先要列出工程信息列表,点击相应的工程名称,进入当前工程下的所有日志列表,现在要求我最近写过日志的工程,在工程列表上面应该靠前面。工程表相当于A表,日志表相当于B表。A表原纪录排序是:
Id Projid
1 Projid00001
2 Projid00002
3 Projid00003
现在对B表进行了添加记录操作
B表记录:
Id Projid Addtime
1 Projid00002 2010-9-1 18:20:20
2 Projid00003 2010-9-4 18:20:20
3 Projid00001 2010-9-4 12:20:20
4 Projid00003 2010-9-4 13:20:20
5 Projid00003 2010-9-4 15:20:20
6 Projid00003 2010-9-4 18:20:20OK现在再来打开A表记录顺序应该是这样子的
Id Projid
1 Projid00003
2 Projid00001
3 Projid00002
也就是说根据操作B表的记录添加时间,来对A表的记录列表进行排序 。
希望有做过的给个提示?
{
Id int PK
Projid varchar(20)
}
TableB{
Id int PK
Projid varchar(20) FK
Content text
Addtime datetime
}
两个表结构类似这样的,B表中的Projid在A表中一定存在,但在B表中不唯一,实际上B表中的projid是从A表中提取过去的。
比方说要写工程日志,那么先要列出工程信息列表,点击相应的工程名称,进入当前工程下的所有日志列表,现在要求我最近写过日志的工程,在工程列表上面应该靠前面。工程表相当于A表,日志表相当于B表。A表原纪录排序是:
Id Projid
1 Projid00001
2 Projid00002
3 Projid00003
现在对B表进行了添加记录操作
B表记录:
Id Projid Addtime
1 Projid00002 2010-9-1 18:20:20
2 Projid00003 2010-9-4 18:20:20
3 Projid00001 2010-9-4 12:20:20
4 Projid00003 2010-9-4 13:20:20
5 Projid00003 2010-9-4 15:20:20
6 Projid00003 2010-9-4 18:20:20OK现在再来打开A表记录顺序应该是这样子的
Id Projid
1 Projid00003
2 Projid00001
3 Projid00002
也就是说根据操作B表的记录添加时间,来对A表的记录列表进行排序 。
希望有做过的给个提示?
解决方案 »
- 关于datagrid控件记录选择和操作的问题
- 请教java.util.Date怎么在sqlserver中存成DATE?
- MS Office 2000 有没有PIA(PRIMARY INTEROP ASSEMBLIES)安装包?
- float向numeric的转换
- 求一个sql 语句 + 高分,高分
- sql server 2000跨数据库 update image类型字段时报内部错误,如何解决?
- 數量匯總
- 获取MSSQL上的数据库的名称
- SQl 中不PULL与PUSH有什么区别,是不是一样的,一定给分
- 施工现场求救!100分奖励!急!急!急!急!
- sqlserver查询难题
- 急!困惑的delete多条记录,子查询返回的值多于一个问题,请指教!
id=row_number() over(order by getdate()),
projectid
from a
join (select projectid,max(Addtime) as Addtime from b group by projectid) b
on a.projectid=b.projectid
order by b.Addtime desc
INSERT INTO @b(id,projid,addtime)
select 1,'Projid00002','2010-9-1 18:20:20' union all
select 2,'Projid00003','2010-9-4 18:20:20' union all
select 3,'Projid00001','2010-9-4 12:20:20' union all
select 4,'Projid00003','2010-9-4 13:20:20' union all
select 5,'Projid00003','2010-9-4 15:20:20' union all
select 6,'Projid00003','2010-9-4 18:20:20'SELECT DISTINCT b.projid,b.addtime FROM @b AS b WHERE b.projid NOT IN (SELECT bb.projid FROM @b AS bb WHERE b.projid = bb.projid AND b.addtime < bb.addtime) ORDER BY b.addtime DESC/*
projid addtime
--------------- ------------------------------------------------------
Projid00003 2010-09-04 18:20:20.000
Projid00001 2010-09-04 12:20:20.000
Projid00002 2010-09-01 18:20:20.000(所影响的行数为 3 行)
*/