SQL:如果子查询没有引入EXISTS,则只能在选择列表中指定一个表达式

SQL:如果子查询没有引入EXISTS,则只能在选择列表中指定一个表达式,sql,sql-server,Sql,Sql Server,我尝试过这样的查询,但得到的信息如下 当子查询未引入EXISTS时,只能在选择列表中指定一个表达式 代码: 我想你需要在下面- select m1.MaterialID = REPLACE(MaterialID, 'MA','Material'), m1.MaterialName = UPPER(MaterialName), m2.PurchaseDate, m2.PurchaseQty from MsMaterial m1 join (select

我尝试过这样的查询,但得到的信息如下

当子查询未引入EXISTS时,只能在选择列表中指定一个表达式

代码:


我想你需要在下面-

select
    m1.MaterialID = REPLACE(MaterialID, 'MA','Material'),
    m1.MaterialName = UPPER(MaterialName),
    m2.PurchaseDate,
    m2.PurchaseQty
from
    MsMaterial m1
join (select
        PurchaseDate,
        PurchaseQty,
        MaterialID
     from
         MsPurchase
     where 
        PurchaseQty > AVG(PurchaseQty)
    ) m2 on m1.MaterialID = m2.MaterialID
where
    MaterialType = 'supplies'

信息的哪一部分不清楚?这个问题没有真正意义。请解释您正在尝试做什么,并以表格文本形式提供示例数据和预期结果。(1)解释您想要实现的逻辑。非工作查询不会传递此信息。(2) 提供样本数据。(3) 提供期望的结果。(4) 为您正在使用的数据库添加标记。我尝试显示MaterialID、MaterialName、PurchaseDate、MaterialType为supplies的数量以及大于平均值的数量。但是,从2表材料和购买的数据,但我必须使用子查询这是链接样本数据thxsorry我恼火你,但我得到了其他线程的答案
select
    m1.MaterialID = REPLACE(MaterialID, 'MA','Material'),
    m1.MaterialName = UPPER(MaterialName),
    m2.PurchaseDate,
    m2.PurchaseQty
from
    MsMaterial m1
join (select
        PurchaseDate,
        PurchaseQty,
        MaterialID
     from
         MsPurchase
     where 
        PurchaseQty > AVG(PurchaseQty)
    ) m2 on m1.MaterialID = m2.MaterialID
where
    MaterialType = 'supplies'