Sql 如何选择最早日期及其对应的数据
我有一个非常简单的问题,这是踢我的屁股Sql 如何选择最早日期及其对应的数据,sql,group-by,Sql,Group By,我有一个非常简单的问题,这是踢我的屁股 CUSTNMBR | first_date | SOPNUMBE ---------------------------------------- 3344771005 | 2012-05-03 | 334471961748 3344771005 | 2012-04-04 | 334476873726 在上表中,我想返回最早的日期以及custnumbr和sopnumb,如下所示 3344771005 | 2012-04
CUSTNMBR | first_date | SOPNUMBE
----------------------------------------
3344771005 | 2012-05-03 | 334471961748
3344771005 | 2012-04-04 | 334476873726
在上表中,我想返回最早的日期以及custnumbr
和sopnumb
,如下所示
3344771005 | 2012-04-04 | 334476873726
我用过这个
Select a.CUSTNMBR, min(a.Tax_Date) as first_date, a.SOPNUMBE
from SOP30200 as a
where a.CUSTNMBR = '3344771005'
Group by a.CUSTNMBR, a.SOPNUMBE
但它返回所有变量,如果我在组中取消了a.sopnume
,它就会出错。试试看
Select TOP 1 a.CUSTNMBR, min(a.Tax_Date)as first_date, a.SOPNUMBE
from SOP30200 as a
where a.CUSTNMBR = '3344771005'
Group by a.CUSTNMBR, a.SOPNUMBE'
ORDER BY 2 ASC
试试这个:
Select top 1 a.CUSTNMBR, a.Tax_Date as first_date, a.SOPNUMBE
from SOP30200 as a
where a.CUSTNMBR = '3344771005'
order by a.Tax_Date asc
是的,基于不需要分组依据的问题,只需要排序依据和前1,只返回最顶层的行。