有一些帖子似乎與此問題相似,但我無法通過這些帖子找到解決此問題的方法。
我正在使用以下兩個表(我沒有發布完整的表,就像理解問題所需要的一樣多):
表一:員工
| emp_id | 名 | 姓 |
|---|---|---|
| 102 | 邁克爾 | 斯科特 |
| 108 | 吉姆 | 哈爾珀特 |
表 2:works_with
| emp_id | client_id | 總銷售額 |
|---|---|---|
| 102 | 401 | 267,000 |
| 102 | 406 | 15,000 |
| 108 | 402 | 22,500 |
| 108 | 403 | 12,000 |
如果這個表資料不夠,我可以回去再補充。
我遇到的問題是這段代碼:
SELECT e.emp_id AS ID,
e.first_name AS 'First Name',
e.last_name AS 'Last Name',
ww.total_sales = (SELECT SUM(ww.total_sales)
FROM works_with
WHERE e.emp_id = ww.emp_id
) AS Sales
FROM (employee e, works_with ww)
INNER JOIN works_with ON ww.emp_id = e.emp_id;
當我運行這樣的代碼時,我收到錯誤:“SQL 錯誤(1242):子查詢回傳超過 1 行。”
我在網上看到一個解決方案說在子查詢之前添加“Any”,但這是結果表:
| ID | 名 | 姓 | 銷售量 |
|---|---|---|---|
| 102 | 邁克爾 | 斯科特 | 0 |
這就是我希望結果表的樣子:
| ID | 名 | 姓 | 銷售量 |
|---|---|---|---|
| 102 | 邁克爾 | 斯科特 | 282,000 |
| 108 | 吉姆 | 哈爾珀 | 34,500 |
我對如何解決這個問題感到困惑。任何幫助是極大的贊賞!
uj5u.com熱心網友回復:
這應該為您提供所需的結果,其中表 1 是您提到的第一個表,表 2 是第二個
SELECT
T1.*
SUM(T2.TOTAL_SALES)
FROM <TABLE1> T1
JOIN <TABLE2> T2 ON T1.EMP_ID = T2.EMP_ID
GROUP BY
T1.EMP_ID, T1.FIRST_NAME, T1.LAST_NAME
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/491569.html
下一篇:在字串中查找數字記錄號
