Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL获取每个帐户的第一个日期和金额_Sql_Sql Server_Sql Server 2008 - Fatal编程技术网

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!