多個記錄,我一直都在一天尋找,但找不到答案是: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分組,這些簡短的別名,最後我使用了一些排名函數,因爲您的查詢只返回一行。但與排名它完美的作品:]。無論如何,對於那些可能谷歌這一點: –