开发者社区> 问答> 正文

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

我试过这样的查询,但收到类似的消息

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

码:


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

展开
收起
Puppet 2020-01-04 11:44:26 996 0
1 条回答
写回答
取消 提交回答
  • 我想您需要在下面-

    
    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'
    
    2020-01-04 11:44:44
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
SQL Server 2017 立即下载
GeoMesa on Spark SQL 立即下载
原生SQL on Hadoop引擎- Apache HAWQ 2.x最新技术解密malili 立即下载