SQL仅返回最大值

SQL仅返回最大值,sql,sql-server,select,max,distinct,Sql,Sql Server,Select,Max,Distinct,我已经用max做了一些基本的查询,但这一个有更多的内容。我正在使用SSMS 2012。这还需要包括一个组或不同的组 Select语句- select A.YEAR1, A.PERIODID from GPSTJ..SY40100 A where A.CLOSED = 0 and A.PERIODID <> 0 and A.series = 5 我只希望它返回1行,首先是年列中的最大值,然后是最大期间ID- YEAR1 PERIODID 2016 2 谢谢您可以尝试

我已经用max做了一些基本的查询,但这一个有更多的内容。我正在使用SSMS 2012。这还需要包括一个组或不同的组

Select语句-

select A.YEAR1, A.PERIODID 
from GPSTJ..SY40100 A
where A.CLOSED = 0 and A.PERIODID <> 0 and A.series = 5
我只希望它返回1行,首先是年列中的最大值,然后是最大期间ID-

YEAR1    PERIODID
2016     2

谢谢

您可以尝试使用
have
子句和
group by
年份、期间ID

您将使用
MAX()
所以使用
从表中选择MAX(YEAR1)、PERIODID


这将选择列中的最高值。

仅使用
TOP(1)

选择顶部(1)A.YEAR1,A.PERIODID
来自GPSTJ..SY40100 A
其中A.CLOSED=0,A.PERIODID=0,A.series=5
按A.YEAR1 DESC,A.PERIODID DESC订购

试试这个
select*from(select Year1,Periodid,rn=row_number()(按Year1划分,按Periodid desc排序)from…)x其中x.rn=1
Hi,这一个看起来既漂亮又简单。以前从未使用过top,但它很有意义。谢谢。您忘记添加
分组依据
YEAR1    PERIODID
2016     2
select TOP (1) A.YEAR1, A.PERIODID 
from GPSTJ..SY40100 A
where A.CLOSED = 0 and A.PERIODID <> 0 and A.series = 5
ORDER BY A.YEAR1 DESC, A.PERIODID DESC