SQL获取每个帐户的第一个日期和金额
我想在交易表中获取每个帐户的第一笔交易的日期和金额。桌上礼品盒如下所示:SQL获取每个帐户的第一个日期和金额,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,我想在交易表中获取每个帐户的第一笔交易的日期和金额。桌上礼品盒如下所示: EntityID Date Amount 1 1/1/2027 00:00:00:00 1.00 1 2/1/2027 00:00:00:00 2.00 2 2/1/2027 00:00:00:00 4.00 2
EntityID Date Amount
1 1/1/2027 00:00:00:00 1.00
1 2/1/2027 00:00:00:00 2.00
2 2/1/2027 00:00:00:00 4.00
2 3/1/2027 00:00:00:00 2.00
在这种情况下,我预计会出现以下情况:
EntityID BatchDate Amount
1 1/1/2027 00:00:00:00 1.00
2 2/1/2027 00:00:00:00 4.00
下面是我正在使用的SQL,它不起作用
select DISTINCT entityid, min(BatchDate) as FirstGiftDate
from GiftHeader
group by EntityId,BatchDate
order by EntityId
任何帮助都将不胜感激
问候,
约书亚·古德温(Joshua Goodwin)您可以将top 1与领带搭配使用,如下所示
Select top 1 with ties * from GiftHeader
order by row_number() over (partition by entityid order by [BatchDate])
其他传统方法是
Select * from (
Select *, RowN = row_number() over (partition by entityid order by BatchDate) from GiftHeader ) a
Where a.RowN = 1
输出:
+----------+-------------------------+--------+
| EntityId | BatchDate | Amount |
+----------+-------------------------+--------+
| 1 | 2027-01-01 00:00:00.000 | 1 |
| 2 | 2027-02-01 00:00:00.000 | 4 |
+----------+-------------------------+--------+
你可以按如下方式使用
选择EntityID,
日期
数量
从中选择行号
结束
按EntityID划分
以RN的形式按日期订购,
*
来自礼物商a
其中a.RN=1
从中选择FGD.ID,FGD.FirstBatchDate,选择entityid为'ID',选择batchdate为'FirstBatchDate',RowNum=按entityid划分的行数,按GiftHeader FGD中的batchdate排序,其中FGD.RowNum=1感谢您的帮助,Sukru!