Tsql 子查询的前5条记录,我得到“附近语法不正确”-错误

Tsql 子查询的前5条记录,我得到“附近语法不正确”-错误,tsql,Tsql,我正在尝试使用以下代码从子查询中查找前5个值,但不起作用 我得到这个错误: Msg 156,15级,状态1,第11行关键字“order”附近的语法不正确 内部查询工作正常,它会检索百分比,但外部查询会给出错误 select Top 5 cde from ( select MCC, sum(Refunds_per_CIF) as cde from ( select MCC, 10000*Refunds/Sum(PV) over() as Refunds_per

我正在尝试使用以下代码从子查询中查找前5个值,但不起作用

我得到这个错误:

Msg 156,15级,状态1,第11行关键字“order”附近的语法不正确

内部查询工作正常,它会检索百分比,但外部查询会给出错误

select Top 5 cde 
from 
(
   select MCC, sum(Refunds_per_CIF) as cde
   from 
   (
     select MCC, 10000*Refunds/Sum(PV)  over()  as Refunds_per_CIF
     from san
    ) as t
   group by MCC
)
order by cde

您能帮助我吗?

T-SQL子查询需要表别名,请尝试以下操作:

select Top 5 ChooseAMeaningfulName.cde 
from 
(
   select MCC, sum(Refunds_per_CIF) as cde
   from 
   (
     select MCC, 10000*Refunds/Sum(PV)  over()  as Refunds_per_CIF
     from san
    ) as t
   group by MCC
) AS ChooseAMeaningfulName
order by cde

您好,Schmelter,它检索到mesage Msg 156,级别15,状态1,第11行关键字“order”附近的语法不正确。内部查询工作正常,它会检索百分比,但外部查询会给我一个错误Hi Tim抱歉再次打扰您我只是想知道是否有办法直接从子查询select MCC中提取前n,10000*退款/SumPV作为SAN的每单位CIF退款而不是两个子查询当前,现在您可以使用排名功能消除一个子查询。在select MCC语句中使用排名函数,然后使用where筛选排名别名