我有表如下所示:條件語句,骨料跨多個表
`units`
+----+------+-------+---------------+-------+
| id | tech | jobID | city | units |
+----+------+-------+---------------+-------+
| 1 | 1234 | 8535 | San Jose | 3 |
| 2 | 1234 | 8253 | San Francisco | 4 |
| 3 | 1234 | 2457 | San Francisco | 5 |
| 4 | 1234 | 8351 | Mountain View | 8 |
+----+------+-------+---------------+-------+
,並使用這些數據做一些計算的看法:
`total`
+----+--------+------+-------+
| id | name | tech | total |
+----+--------+------+-------+
| 1 | Dan | 1234 | 12 |
| 2 | Dan SF | 1234 | 12 |
+----+--------+------+-------+ ...
我的問題是,我試圖總結Dan在舊金山完成的單位數量以及他在其他地方完成的單位數量(需要專門跟蹤SF中完成的單位數量)。但是,我不確定如何在我的選擇查詢中執行此操作,並且如果您查看當前的總表,則會看到兩個總值都只是將所有單位相加,而不考慮城市。
我希望得到以下幾點:
`total`
+----+--------+------+-------+
| id | name | tech | total |
+----+--------+------+-------+
| 1 | Dan | 1234 | 11 |
| 2 | Dan SF | 1234 | 9 |
+----+--------+------+-------+ ...
我需要幫助寫我的選擇,因爲我不能確定如何使用CASE以獲得期望的結果。我試過以下內容:
SELECT otherTable.name AS name, units.tech AS tech,
(CASE WHEN City = 'SAN FRANCISCO' THEN SUM(units)
ELSE SUM(units)
) AS total
FROM units, otherTable
GROUP BY name
但很明顯,這是行不通的,因爲我沒有區分兩個集合中的城市。
任何幫助,非常感謝。
編輯:我目前的觀點的SELECT查詢(與加盟信息)如下:
`otherTable`
+----+--------+------+-----------+
| id | name | tech | otherInfo |
+----+--------+------+-----------+
| 1 | Dan | 1234 | ...... |
+----+--------+------+-----------+
在你查詢你是交叉連接兩個表,所以每名與各單位結合。但在您的視圖樣本中,您向其他人展示了'舊金山'和'丹'的用戶'Dan SF'。那個怎麼樣?請說明兩個表格是如何相關的。你怎麼知道丹是誰完成了單位? –
對不起,我已經使用加入信息更新了我的帖子。 – mathmorales
好的,這個名字叫'Dan SF'。使用pgreen2的'UNION ALL'查詢,然後調整連接。 –