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

时间:2015-06-29 21:42:53

标签: sql sql-server

我遇到第二个问题的问题,因为我收到错误“当子查询未引入EXISTS时,只能在选择列表中指定一个表达式。”。你能救我吗?

Select P.Name, P.ProductCategoryID, PC.Name, Max(P.ListPrice) as MaxPrice
from SalesLT.Product as P
join SalesLT.ProductCategory as PC
on PC.ProductCategoryID=P.ProductCategoryID
where P.ListPrice=
    (select Max(ListPrice)
    from SalesLT.Product as P2
    where P2.ProductCategoryID=P.ProductCategoryID)
group by P.Name, P.ProductCategoryID, PC.Name
order by MaxPrice desc;

go

with sale_cte as 
    (Select PC.Name, P.ProductCategoryID, P.Listprice,
    ROW_NUMBER() over(partition by PC.Name order by P.Listprice) as RN
    from SalesLT.Product as P
    join SalesLT.ProductCategory as PC
    on PC.ProductCategoryID=P.ProductCategoryID)
Select PC.Name,
    (select *
    from sale_cte)
from SalesLT.ProductCategory as PC
wher RN=1

2 个答案:

答案 0 :(得分:3)

我认为错误发生在下面

mvn install:install-file -Dfile=lib/ojdbc7.jar -DgroupId=com.oracle -DartifactId=ojdbc7 -Dversion=12.1.0.2.0 -Dpackaging=jar -DgeneratePom=true

这可以重写为

export CLASSPATH=/<somewhere>/<myapp>/lib/ojdbc7.jar

答案 1 :(得分:1)

您不需要单独列出PC.Name,因为它是整个列列表的一部分(*)