Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle 基于预订数量的客户详细信息_Oracle - Fatal编程技术网

Oracle 基于预订数量的客户详细信息

Oracle 基于预订数量的客户详细信息,oracle,Oracle,编写查询以显示用户id和用户名,其中用户在个人预订中预订的座位数大于1。按用户名升序显示记录 我已经尝试了这个查询,但我发现了错误。请帮帮我 select u.user_id,u.name from users u join bookingdetails bd on u.name=bd.name join tickets t on u.user_id=t.user_id group by u.name having count(t.no_se

编写查询以显示用户id和用户名,其中用户在个人预订中预订的座位数大于1。按用户名升序显示记录

我已经尝试了这个查询,但我发现了错误。请帮帮我

select u.user_id,u.name 
     from users u join bookingdetails bd 
     on u.name=bd.name
     join tickets t on u.user_id=t.user_id
     group by u.name
     having count(t.no_seats) > 1
     order by u.name;

如果我理解你的任务,看起来你应该这样做

WITH cteBookings AS (SELECT bd.USER_ID, SUM(t.NO_SEATS) AS TOTAL_SEATS_BOOKED
                       FROM BOOKINGDETAILS bd 
                       INNER JOIN PAYMENTS p
                         ON p.BD_ID = bd.BD_ID
                       INNER JOIN TICKETS t
                         ON t.TICKET_ID = p.TICKET_ID
                       GROUP BY bd.USER_ID)
SELECT DISTINCT b.USER_ID, u.USER_NAME
  FROM USERS u
  INNER JOIN cteBookings b
    ON b.USER_ID = u.USER_ID
  WHERE b.TOTAL_SEATS_BOOKED > 1
  ORDER BY u.USER_NAME ASC

祝你好运。

根据问题,它要求个人预订>1 因此,解决方案非常简单,即对于每个票证id座位数应大于1

选择DISTINCT(用户id)、name

从内部加入用户 使用(用户id)

没有座位>1的地方


按名称订购

如果您尝试不使用联接,则会更简单

select distinct u.user_id,u.name from users u 
join tickets t on u.user_id = t.user_id
where
u.user_id in( select user_id from tickets where no_seats>1)
order by u.name;
使用子查询的一个简单示例:

select  user_id, name from users 
where user_id = any(select distinct user_id from tickets where no_seats > 1) 
order by name asc;

更新您的问题并添加准确的错误信息代码。不鼓励只提供答案。请添加一些解释,说明这是如何解决问题的,或者这与现有答案有何不同。