答案 0 :(得分:0)
希望这会让你知道它是如何运作的
CREATE TABLE #tblBackers (
amountBacked MONEY,
backersAccountID INT,
playerBacked INT,
Dates DATETIME)
INSERT INTO #tblBackers VALUES (25,12345,99999,GETDATE())
INSERT INTO #tblBackers VALUES (25,12345,99999,GETDATE())
INSERT INTO #tblBackers VALUES (25,12345,99699,GETDATE())
INSERT INTO #tblBackers VALUES (25,12345,99999,GETDATE())
INSERT INTO #tblBackers VALUES (25,98765,88888,GETDATE())
INSERT INTO #tblBackers VALUES (25,76543,77777,GETDATE())
GO
SELECT DISTINCT * FROM #tblBackers
SELECT DISTINCT TOP 1 * FROM #tblBackers
并使用ORDER BY
获取最新记录。
答案 1 :(得分:0)
如果您只需要每ref_no
条记录一条记录,请考虑在该字段上添加group by
条款。
select
fa.ref_no
/*, other stuff*/
from
FORM_AUDIT fa
/* other joins*/
group by
fa.ref_no;
请记住,此group by
子句会将共享相同ref_no
的所有记录聚合到结果集中的单个记录中。这意味着您不能再直接在选择列表中包含fh.*
和fcd.*
等字段,因为您无法保证每个字段在结果集中每行只有一个值。对于要包含在选择列表中的每个此类字段,您必须:
在group by
子句中包含该字段,请注意,这样做不再一定会为每个不同的ref_no
提供一行;现在,每个ref_no
的不同组合以及您添加到group by
子句中的任何其他组合,或
使用SQL Server的aggregate functions之一将您要添加的字段中的零对多值转换为单个值。聚合函数包括max()
,sum()
,count()
等。链接上有完整的列表。