Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.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
SQL Server-选择到另一个选择中出错_Sql_Sql Server_Select Query - Fatal编程技术网

SQL Server-选择到另一个选择中出错

SQL Server-选择到另一个选择中出错,sql,sql-server,select-query,Sql,Sql Server,Select Query,我创建查询以在数据库中获取商品,如下所示 SELECT Goods.GoodsID ,Max(Price) ExistNumber AS ExistNumber , (SELECT p.ValueText FROM STR.GoodsProperties gp INNER JOIN PRP.Properties p ON p.PropertyID = gp.PropertyID WHERE NodeText LIKE '/40/%'

我创建查询以在数据库中获取商品,如下所示

SELECT  
    Goods.GoodsID ,Max(Price)
    ExistNumber AS ExistNumber ,
    (SELECT p.ValueText
     FROM STR.GoodsProperties gp
     INNER JOIN PRP.Properties p ON p.PropertyID = gp.PropertyID
     WHERE NodeText LIKE '/40/%'
       AND gp.GoodsID = Goods.GoodsID) AS Color
FROM    
    STR.Goods
GROUP BY 
    Goods.GoodsID, ExistNumber;
此查询使用商品的
现有编号
和颜色属性获取商品, 现在,当我运行此查询时,出现以下错误:

Msg 512,16级,状态1,第13行
子查询返回了多个值。当子查询在=、!=、=或者当子查询用作表达式时


导致此错误的原因是,在某些商品中有两个
颜色
,我想为该商品获取两行

请检查此查询

SELECT  Goods.GoodsID ,
        ExistNumber AS ExistNumber ,
        Prop.ValueText AS Color
FROM    STR.Goods
        INNER JOIN ( SELECT gp.GoodsID ,
                            p.ValueText
                     FROM   STR.GoodsProperties gp
                            INNER JOIN PRP.Properties p ON p.PropertyID = gp.PropertyID
                     WHERE  NodeText LIKE '/40/%'
                   ) Prop ON Prop.GoodsID = Goods.GoodsID
GROUP BY Goods.GoodsID ,
        ExistNumber ,
        Prop.ValueText;

为什么在没有使用聚合函数时按分组?为什么不是一个简单的SELECT DISTINCT呢?我认为问题查询有更多包含聚合函数的列,为什么在没有使用聚合函数的情况下按分组?为什么不使用简单的SELECT DISTINCT呢?