2017-11-20 17 views
0

以下のクエリでエラーが表示されます。サブクエリは必要に応じて動作します。 3列、ID、タイプ、金額。 SSMSによると、 "FOR 'というキーワードの近くにピボットシンタックスの問題があります。SSMSクエリ - キーワード 'FOR'の近くの構文が正しくありません

質問はSOの質問を反映していますが、他にも同様の質問がたくさんありますが、問題を見つけることができません。私は括弧を使用して、サブクエリでジョインを削除し、データがピボットされた後に結合しようとしましたが、これまでに何も機能していませんでした。 PIVOT

SELECT 
dboBillingAdjustments.CMSId 
,DataPivot.Certification 
,[DataPivot.Contractor Supplement] 

FROM 
    (
     SELECT 
      Businesses.CMSId 
      ,BillingAdjustments.Type 
      ,BillingAdjustments.ContractorAmount 

FROM BillingAdjustments 
      JOIN BillingAdjustmentTypes on BillingAdjustmentTypes.Id = BillingAdjustments.TypeId 
     JOIN Businesses on Businesses.UId = BillingAdjustments.BusinessId 

    WHERE 
     DateKey = 20171104 AND 
     IsSettled = 1 

) as dboBillingAdjustments 

PIVOT 
(
    BillingAdjustments.ContractorAmount FOR Type in ([Certification], [Contractor Supplement]) 
) as DataPivot 
+1

あなたはそこ '集約function'を必要とする、例えば:' MAX(BillingAdjustments.ContractorAmount)で... 'タイプのための[構文を参照してください](https://docs.microsoft.com/en-us/sql/t-sql/queries/from-using-pivot-and-unpivot) – Sami

+0

それはそれをしました。今私はそれについて考えています、それはまさにピボットのためのものです。私は構文を理解していませんでした。ありがとうございました! –

答えて

0

あなたは、例えば集計関数MAX(),MIN(),AVG()... が必要になります。

PIVOT 
(
    MAX(BillingAdjustments.ContractorAmount) 
    FOR Type in ([Certification], [Contractor Supplement]) 
) as DataPivot 
関連する問題