我有以下表格:Oracle查詢:如何從此查詢中取消多個結果?
CLIENT
- ID
- NAME
- USER
ORDER
- ID
- DATE
- CLIENT_ID
- USER
ORDER_LINE
- ORDER_ID
- LINE_ID
- USER
用戶現場跟蹤誰最後修改記錄的人。此外,每個訂單項可能會被不同的用戶修改。
我試圖找出來,給一個用戶,有什麼吩咐他們已經參與了。
select
client.id,
client.name,
order.id,
order.date,
case
when order_line.user = :user then 'Line Item'
when order.user = :user then 'Order'
when client.user = :user then 'Client'
end
from
order_line
join order on order_id = order.id
join client on order.client_id = client.id
where
order_line.user = :user
or order.user = :user
or client.user = :user
問題是,用戶可能同時觸摸order和order_line表,所以我得到多個結果。添加select distinct不會有幫助,因爲case語句的結果在每種情況下都不相同。
有沒有辦法來重組查詢,所以我只有每個訂單得到一個結果?
case語句的結果是不是真的那麼重要 - 這將是很好,如果我能在別人摸兩個表,但只是「行項目」的情況下,得到「行項目,令」將確定。
那麼案例陳述並不重要?或者,如果您希望每個訂單有一行,您會如何選擇不同的案例? – Jacob
@cularis:我通過澄清更新了問題。 – chris