回答
我可以的路要走,但我相信下面的語句滿足您的要求
SELECT *
FROM (
SELECT e.EmployeeID, h.FromDate, h.ToDate
, rn = ROW_NUMBER() OVER (PARTITION BY e.EmployeeID ORDER BY DesignationID DESC)
FROM employee e
INNER JOIN history h ON h.EmployeeID = e.EmployeeID
) eh
WHERE rn = 1
歷史表包含他們加入後第一天的員工退出歷史記錄。在每次指定更改時,新的行會添加到歷史記錄表中。我想要的是獲得結果集的第一行,以便找到員工加入的日期,因此,當我接受員工表和歷史表的連接時,它會顯示同一員工的多行「FromDate」第一行決定加入日期... – 2012-02-14 11:27:49
我試圖運行您的查詢,但它給了我以下錯誤'列'EmployeeID'多次指定爲'eh'。' – 2012-02-14 11:28:51
@john - 您應該替換'SELECT *括號內的列與您想要返回的列。我編輯了我的答案。查詢應該現在運行沒有問題,但我沒有包含*所有*列根據您的示例。 – 2012-02-14 11:33:20
不知道你在找什麼,但嘗試這樣的事情(無子查詢需要,並應在大多數DBMS工作,儘管它看起來像你的運行SQL Server ):
select t1.DisignationHistoryIDs, t1.employeeId, t1.fromDate from history t1
left join history t2
on t1.employeeId = t2.employeeId and t1.fromDate > t2.fromDate
where t2.fromDate is null
這應該工作得到最早的從日期。要獲得最新的日期,只需將>
更改爲<
即可。
我已更新問題 – 2012-02-14 09:32:46
試試這個,它應該工作。 – 2012-02-14 09:50:17
看不清你在問什麼。突出顯示的ID只是唯一的事件。所以,你可以做到這一點很容易:
SELECT DISTINCT EmployeeID FROM MyTable
distinct在這裏不會幫助 – 2012-02-14 09:32:37
DISTINCT會給你完整的黃色突出顯示的ID列表。這就是你要求的。如果你可以更清楚你想做什麼,也許我可以提出另一個建議。 – njr101 2012-02-14 09:33:51
嘗試:
select * from
(select t.*,
row_number() over (partition by EmployeeID order by FromDate) as rn) sq
where rn = 1
這是我最初發布的,但它不適用於ID的256,257。 – 2012-02-14 10:03:43
應該適用於256而不是257,如截圖所示。這一切都取決於約翰張貼一些澄清,他**實際**想要什麼...... – 2012-02-14 10:13:49
- 1. Oracle從結果集中獲得第一個記錄
- 2. 獲得一個隨機記錄從一組結果
- 3. 從記錄獲取一個記錄集
- 4. 如何獲得第一個記錄和最後一個記錄
- 5. 如何從PHP multiquery語句獲得第二個結果集?
- 6. 獲得第一個記錄從兩個表
- 7. 得到一個結果表,從兩個結果集查詢
- 8. 如何從多個月獲得第一筆記錄
- 9. 如果數據集結束,則返回第一條記錄
- 10. 如何從Jena SPAQL結果集中獲取第一個元素
- 11. 只能從Perl的SOAP服務獲得第一個結果
- 12. Play&Ebean - 獲得第一筆記錄
- 13. 獲得一個結果從LINQ聲明
- 14. Mongoid - 如何獲得第二個記錄?
- 15. 如何獲得第二個記錄起
- 16. 只能從一個集合中獲得結果mongodb/Symfony 2
- 17. 從第一記錄集訪問數據
- 18. 一個存儲過程如何從另一個執行結果中讀取第一個記錄集?
- 19. 如何在訂購後獲得結果集中的第一行?
- 20. 從RxJava獲得2個觀察結果中的一個結果
- 21. 如何獲得多個結果在1個記錄
- 22. 如何獲得第一和最後一個記錄HiveSQL如果key不同
- 23. 如何獲得一個特定的行作爲第一個結果,然後結果集的其餘部分
- 24. 從SelectMethod保存第二個結果集
- 25. MVC EF第一個結果查詢是由第二個結果取代,如果第二次結果得到了相同的記錄
- 26. 如何獲得第一條記錄了每個組從結果使用GROUP BY命令
- 27. 將一條記錄轉換爲結果集的多條記錄
- 28. 獲得從結果
- 29. SQL插入記錄對於結果集的每個記錄
- 30. 如何從我的SQL中獲得第二個結果,並保留第一個結果
所以你要組對僱員但你用什麼來決定'第一'是什麼? – Ray 2012-02-14 09:23:40
@NeilKnight它看起來像我正確地要求代碼,但它不是這樣,我已經與秩嘗試,但不能安靜得到結果 – 2012-02-14 09:24:18
@射線我想獲得'FromDate',但有重複的行不是不受歡迎的,但每個重複行的第一行的'FromDate'將用作應用程序中的加入日期 – 2012-02-14 09:26:40