我有一個Oracle數據庫,我試圖從最早的行(基於time
字段)中選擇一個user
字段,其中滿足了某些條件,而且我沒有知道如何去做。這裏是我的查詢的要點:最早選擇用戶並加入其他數據
SELECT id,
CASE WHEN value = 'xyz'
THEN 'Pending'
ELSE 'Not Pending'
END AS status,
time
FROM table1
INNER JOIN ...
WHERE subject IN (...) AND
field = 'Status'
我的問題是我不知道如何選擇user
與最早time
值符合WHERE條件從該行獲得唯一的值。我不認爲我可以使用HAVING
,因爲我沒有在SELECT中執行任何聚合函數。在「最早time
值」條件需要僅適用到user
字段的選擇,即我想id
和value
被選擇用於的time
字段的所有值。
我在想我可以保留上面的SELECT語句,然後用另一個SELECT語句JOIN,以獲得我想要的特定user
。
SELECT id, status, time, user
FROM (
...query above...
),
(
SELECT user
FROM table1
WHERE subject in (...) AND
field = 'Status' AND
ROWNUM = 1
ORDER BY time ASC
)
然而,這僅僅得到了user
一個整體價值,而且應該在我的第一個查詢選擇的每個id
單獨user
值。如何通過其他查詢的id
字段限制我的SELECT user
查詢?這是否是正確的方法來獲得我想要的?
你可以發佈樣本數據和期望的輸出嗎? – shahkalpesh 2009-11-18 18:52:10