我有以下表格: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