2

質問があります:

select 
      index_imsid
    , SUM(weighted_value) sumWeightedValue
    , (
        select 
              top 1 percentof
            , [Plan_Name_OR_Payment_Type] 
        from [v_PlanPerProvider1] 
        where [PLAN_RANK]=1
      ) plan1
from [v_PlanPerProvider1]
where plan_rank between 1 and 10
group by index_imsid
order by 1

そして私はこのエラーを受け取っています:

メッセージ116、レベル16、状態1、行3
サブクエリがEXISTSで導入されていない場合、選択リストで指定できる式は1つだけです。

このエラーが発生する理由を理解するのを手伝ってもらえますか?

列の1つとしてselectステートメントが気に入らないようです。

4

2 に答える 2

9

サブクエリで2つの列を選択するのは好きではありません。一度に選択できる列は1つだけです。

  select index_imsid, SUM(weighted_value) sumWeightedValue,
    (select top 1 percentof from [v_PlanPerProvider1] where [PLAN_RANK]=1) percentof
    (select top 1 [Plan_Name_OR_Payment_Type] from [v_PlanPerProvider1] where [PLAN_RANK]=1) Plan_Name_OR_Payment_Type
  from [v_PlanPerProvider1]
  where plan_rank between 1 and 10
  group by index_imsid
  order by 1
于 2012-09-11T21:00:55.103 に答える
2

または、これを行うことができます:

select  
    t1.index_imsid, SUM(t1.weighted_value) sumWeightedValue, t2.percentof, t2.[Plan_Name_OR_Payment_Type]
from [v_PlanPerProvider1] t1
cross join (select top 1 percentof, [Plan_Name_OR_Payment_Type] from [v_PlanPerProvider1] where [PLAN_RANK]=1) t2 
where t1.plan_rank between 1 and 10 
group by t1.index_imsid, t2.percentof, t2.[Plan_Name_OR_Payment_Type]
order by 1 
于 2012-09-11T21:39:52.430 に答える