【发布时间】:2011-03-27 10:55:56
【问题描述】:
我有一个包含以下列的表格
- 身份证
- 外键ID
- 属性名
- 属性值
- 已创建
部分数据可能如下所示:
1, 1, 'EmailPreference', 'Text', 1/1/2010
2, 1, 'EmailPreference', 'Html', 1/3/2010
3, 1, 'EmailPreference', 'Text', 1/10/2010
4, 2, 'EmailPreference', 'Text', 1/2/2010
5, 2, 'EmailPreference', 'Html', 1/8/2010
我想运行一个查询,为每个不同的 ForeignKeyId 和 AttributeName 提取 AttributeValue 列的最新值,并使用 Created 列来确定最新值。示例输出为:
ForeignKeyId AttributeName AttributeValue Created
-------------------------------------------------------
1 'EmailPreference' 'Text' 1/10/2010
2 'EmailPreference' 'Html' 1/8/2010
如何使用 SQL Server 2005 做到这一点?
【问题讨论】:
-
EmailPreference/Text/ 1/10/2010 的值不应该是 3,而不是 1?
-
不,输出的第一列是外键id,不是行id
标签: sql sql-server sql-server-2005 tsql greatest-n-per-group