2017-12-09 10 views
0

2000年、2001年、2004年、2005年、2006年の各ポリシーで取得したポリシー名と顧客数を表示するピボットテーブルを作成しようとしましたが、 2008、2010、2012、2015 エラーメッセージ "このクエリを実行しているときに '('"近くの構文が正しくありません。

Select NAME, [2000], [2001], [2004], [2005], [2006], [2008], [2010], [2012], [2015] 
    from (
      select policy.name, year(customer_policy.policy_start_date) 
      from policy 
      join customer_policy 
       on policy.id = customer_policy.policy_id 
     group by policy.name, customer_policy.policy_start_date 
     ) as SourceTable 
    PIVOT 
     (
     count(policy.name) for year(customer_policy.policy_start_date) 
     in ([2000], [2001], [2004], [2005], [2006], [2008], [2010], [2012], [2015]) 
     ) As PivotTable; 

私は取得しています:

Incorrect syntax near '(' 

答えて

0

私はあなただけの列の別名といくつかの要約が必要だと思う:

Select NAME , [2000], [2001], [2004], [2005], [2006], [2008], [2010], [2012], [2015] 
from (select p.name, year(cp.policy_start_date) as yr 
     from policy p join 
      customer_policy cp 
      on p.id = cp.policy_id 
     group by p.name, cp.policy_start_date 
    ) as SourceTable 
PIVOT (count(*)) for yr in ([2000], [2001], [2004], [2005], [2006], [2008], [2010], [2012], [2015])) As PivotTable 
+0

構文エラーがありますが、結果を得るすべての人が解決しています。 – Himanshu

+0

値が存在しない場合はnullの代わりに '0'を取得する必要があります – Himanshu

+0

@himanshuリストを選択する 'NAMEを選択し、合体([2000]、0)、合体([2001]、0)... ' –

関連する問題