我正在使用左連接向我的主表添加 6 列,但右表在主鍵列中有重復項,因為它的設計不正確。我無法解決這個問題,所以我必須和我一起作業。我在 MS Access 中執行此操作,因此無法訪問 Group By Partition 之類的內容。
連接表:
| 密鑰ID | 功放 | QL |
|---|---|---|
| 1111 | X | |
| 1111 | X |
我希望我的決賽桌看起來像這樣:
| 密鑰ID | 功放 | QL |
|---|---|---|
| 1111 | X | X |
我怎樣才能做到這一點?
uj5u.com熱心網友回復:
不確定我是否理解問題,但您可以應用諸如 MAX 之類的聚合函式來消除空值:
SELECT t1.KeyID, MAX(t2.PA) AS PA, MAX(t2.QL) AS QL
FROM t1
LEFT JOIN t2
ON t1.KeyID = t2.KeyID
GROUP BY t1.KeyID;
uj5u.com熱心網友回復:
您可以使用兩個子查詢:
SELECT
KeyID,
(Select PA
From YourTable As T
Where T.KeyID = YourTable.KeyID And PA Is Not Null) AS PA,
(Select QL
From YourTable As T
Where T.KeyID = YourTable.KeyID And QL Is Not Null) AS QL
FROM
YourTable
GROUP BY
KeyID;
uj5u.com熱心網友回復:
我的想法不是很可擴展,因為您必須為遇到此問題的每一列進行新查詢,但這是我的做法。
進行 3 個查詢:
- 僅 [不同的 KeyID]
- 主表 WHERE PA IS NOT NULL
- 主表 WHERE QL IS NOT NULL
現在是第四個查詢,
SELECT query1.KeyID, query2.PA, query3.QL
FROM query1
LEFT OUTER JOIN query2 ON query1.KeyID = query2.KeyID
LEFT OUTER JOIN query3 ON query1.KeyID = query3.KeyID
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/505134.html
上一篇:如何從資料庫中的影像串列中保存多個影像,然后在C#Windows表單應用程式的圖片框中幻燈片顯示它們?
下一篇:訪問VBA以在服務器端運行查詢
