这可能非常简单,但是我很愚蠢,被卡住,无法找到与我的问题完全匹配的线程...
我需要从表中插入tblGameRecords
,看起来像这样:
tblGameRecords(ID:match_no, soccer_team_id, stadium, fake_injuries, hair_wax, date)
...进入另一个表tblTeamRecords
,该表应如下所示:
tblTeamRecords(ID:soccer_team_id, stadium, fake_injuries, hair_wax, date)
现在,我的问题是在tblGameRecords
中:
1。同一soccer_team_id
的自然出现多次。
2。同一date
自然会出现多次。
3。有时在同一soccer_team_id
上多次出现同一date
(叹息...)
我想在tblTeamRecord
中每soccer_team_id
插入一行。我想要tblGameRecords
中该队的最早记录。
如果团队重复tblGameRecords
进入date
,多次在同一个query
上进行比赛,那么我对其中的任何一行都没问题,因为其他列都需要用该行中的相应值填充,无论实际值是否与其他重复项不同。
我显然在编写查询时遇到麻烦,让我无法将这些倍数缩小到一个。这是存储过程btw的一部分。
再次*编辑:删除多余的附加信息*
答案 0 :(得分:1)
您可以使用ROW_NUMBER为Soccer_team_id的每个值生成每个日期的行号(以对编号进行分区),然后仅插入那些行号等于1的行:
;with cte as (
select soccer_team_id, stadium, fake_injuries, hair_wax, date, row_number() over(partition by soccer_team_id order by date) as row_no
from tblGameRecords
)
insert into tblTeamRecords(soccer_team_id, stadium, fake_injuries, hair_wax, date)
select soccer_team_id, stadium, fake_injuries, hair_wax, date
from cte
where row_no = 1