列模糊地定义了错误oracle sql

时间:2016-01-23 08:30:05

标签: mysql sql oracle inner-join having-clause

我在以下sql代码中遇到问题。我有一个这样的表:学生(st_id,st_fname,st_lname)和访问(visit_id,st_id,visit_cost)。

我想要做的是为每个学生选择平均值visit_cost,超过500,然后是st_fname和st_lname。我写了以下代码:

select avg (v.visit_cost) as average_cost, s.st_fname, s.st_lname   
from      student s
inner join visitings v  on s.st_id=v.st_id
group by st_id
having avg(v.visit_cost)>=500;

在输出中,它显示“列模糊定义”错误。如果可能的话,你可以帮帮我吗?

1 个答案:

答案 0 :(得分:1)

由于您没有回答评论中的问题,我假设<div> <p id="feedback"><?php echo $feedback;?></p> <form action="?" method="post"> <ul> <li> <label for="name">Name:</label> <input type="text" name="name" id="name"> </li> <li> <label for="email">Email:</label> <input type="text" name="email" id="email"> </li> <li> <label for="message">Message:</label> <textarea id="message" name="message" cols="42" rows="9"></textarea> </li> <li> <input type="submit" value="Submit"> </li> </ul> </form> </div> <?php $to = 'xxxx@gmail.com'; $subject = 'This came from the other world'; $name = $_POST['name']; $email = $_POST['email']; $message = $_POST['message']; $header = '$email'; if($_POST) { mail($to, $subject, $message, $header); $feedback = 'Your Message has been send'; } ?> 列来自amount_paid表,因为visitings表看起来像维度表。

student错误是由两个表中的column ambiguity列引起的。所以SQL不知道你指的是哪个表st_id。试试这个。

st_id

请参阅此处的SQLFiddle演示

http://sqlfiddle.com/#!9/93027a/2