【问题标题】:Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= [duplicate]子查询返回超过 1 个值。当子查询遵循 =、!=、<、<=、>、>= [重复] 时,这是不允许的
【发布时间】:2015-08-29 11:21:26
【问题描述】:

为什么会报错:

子查询返回超过 1 个值。当子查询跟随 =、!=、、>= 或子查询用作表达式时,这是不允许的。

create view viewAss
as select a.kd_ass,m.nama
from mahasiswa m ,asisten a, honor h
where m.NIM = a.nim and a.kd_ass = h.kd_ass
group by a.kd_ass,m.nama,h.honors
having h.honors > (select avg(h.honors) from honor)

命令成功完成。

但是,当我跑步时..

select * from viewAss

错误:

消息 512,第 16 级,状态 1,第 2 行 子查询返回超过 1 个值。当子查询跟随 =、!=、、>= 或子查询用作表达式时,这是不允许的。

【问题讨论】:

    标签: sql sql-server view


    【解决方案1】:
    create view viewAss
    as 
     select a.kd_ass
           ,m.nama
    from mahasiswa m 
    INNER JOIN  asisten a   ON m.NIM = a.nim
    INNER JOIN  honor h     ON a.kd_ass = h.kd_ass
    group by a.kd_ass,m.nama,h.honors
    having h.honors > avg(h.honors) 
    

    【讨论】:

    • 这段代码确实需要给OP解释一下
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-04
    • 2016-08-02
    • 2019-10-13
    • 1970-01-01
    相关资源
    最近更新 更多