多个记录,我一直都在一天寻找,但找不到答案是:SQL - 插入从选择
我有SQL Server上的表:
dbo.Program
与字段:
- Program.id ... PK自动递增
- Program.user ... VARCHAR
- Program.program ... VARCHAR
- Program.installed ...布尔
- Program.department ... VARCHAR
- Program.wheninstalled ...日期
现在,我想插入一个新的记录每一个不同的用户,并从他的最新(Program.wheninstalled)记录复制该部门与其他值同样为每一位用户:
- Program.user ... 每一个独特的用户
- Program.program ... MyMostAwesomeProgram
- Program.installed ......假
- Program.department ... 部门备案的与所有最新的program.wheninstalled场在program.user
- Program.wheninstalled独特的用户记录...空
我知道该怎么做,在一个丑陋的方式:
- 在这个纪录从1
- 提取值)选择为每一位用户的最新记录及其部门并使之成为INSERT INTO (字段1,字段2 ... fieldX)值 (1records_value1,1records_value2 ... 1records_valueX), (2records_value1,2records_value2 ... 2records_valueX), ... (Nrecords_value1,Nrecords_value2 ... Nrecords_valueX)
,但我想知道如何做一个更好的办法。哦,我不能使用一些适当的人力资源数据库来让我的生活更轻松,所以这就是我现在需要的。
ps。如果您想阅读这篇文章,可以在这里找到关于这个类似功能的好博客。 http://blog.sqlauthority.com/2007/10/09/sql-server-2005-sample-example-of-ranking-functions-row_number-rank-dense_rank-ntile/ – JohnLBevan
非常感谢。你的查询最终帮助我完成了它。现在我明白了分区vs vs分组,这些简短的别名,最后我使用了一些排名函数,因为您的查询只返回一行。但与排名它完美的作品:]。无论如何,对于那些可能谷歌这一点: –