我遇到了,我知道我是接近於解決的問題,但我不能得到正確的數據又回來,或者是在查詢得到錯誤。SQL子查詢或組BY返回某個列的不同值?
基本上我想要做的是從單個表中選擇基於以下值的值:我希望他們基於我提供的員工姓名,我希望他們返回該員工的DISTINCT帳號(有時是相同的帳戶號碼列出不止一次...我只希望每個重複帳號的一行數據)。
這裏是我到目前爲止已經試過:
SELECT DISTINCT * FROM Employees WHERE EmpName = 'Mary Johnson' GROUP BY AccountID
- 這會返回一個錯誤,說我沒有爲列僱員合計(不計算列,那麼,爲什麼它要求一個聚合?)
然後我試圖子查詢:
SELECT EmployeeID, EmpName, Department, Position, (SELECT DISTINCT AccountID From Employees) AS AcctID FROM Employees WHERE EmpName = 'Mary Johnson'
- 這給了我一個錯誤說最多隻有一個記錄可以返回(我在訪問)。
我知道必須有一個解決方案,我正在尋找---目前如果我做了一個完整的查詢只是EmpName它返回30條記錄,但是,其中23個有重複的AccountID,所以應該只有是7個記錄,返回一個DISTINCT AccountID。
如何通過SQL實現這一目標?
下面是一個例子:
ID(PK) EmpName AcctID Department Position EmpId
------ -------- --------- -------- -------- ------
1 Mary Johnson 1234 IT Tech 226663
2 Mary Johnson 1234 IT Tech 226663
3 Mary Johnson 1234 IT Tech 226663
4 Mary Johnson 2345 IT Tech 226663
5 John James 23442 Banking Teller 445645
6 Jame Tabor 1234 HR Manager 234555
在上面的例子中我想要做一個SQL查詢與ACCOUNTID的瑪麗·約翰遜說是不同的,以獲得行了。所以,我們還是會回到2行瑪麗·約翰遜1234和瑪麗·約翰遜2345,忽視了其他2行瑪麗·約翰遜擁有的1234重複AccountIDs,並沒有叫瑪麗·約翰遜
添加一些示例表格數據和預期結果 - 以及格式化文本。 – jarlh
編輯您的問題並顯示「員工」中的列。 –