2017-07-17 12 views
1

各レコードのPercentile値を新しい列として追加しようとしています。しかし、私は私のSQLクエリでエラーが発生しています。誰でもそれを解決するのを助けてくれる?SQL Serverクエリ内のエラー - 内部結合

エラーメッセージ: メッセージ156、レベル15、状態1、行3 'inner'キーワードの構文が正しくありません。 メッセージ102、レベル15、状態1、行6 'a'の近くの構文が正しくありません。

Select b.* , a.[Rank_1]/count(b.[Date]) * 100 as Percentile from 
    [Country_table1$] b where [Country] = 'AUSTRALIA' 
    inner join 
    (
select [MSCI_Price_idx], [Country], rank() OVER (PARTITION BY [Country] 
    ORDER BY [MSCI_Price_idx] DESC) AS [Rank_1] 
    from [Country_table1$] 
    GROUP BY [MSCI_Price_idx],[Country] 
) a 
ON a.[Country] = b.[Country] 
+2

「国[=]。[国]」という行の下に '[国] = 'オーストラリア'が移動している可能性がありますか? –

+0

クエリの基本構文を調べる必要があります。次に、where節が完全に間違った場所にあることを認識します。 –

答えて

2

あなたは間違った場所であなたのwhere文を持っています。結合は形式的にfromステートメントの一部であり、したがって基準の前に来る。一番下の基準を正しい表にチェックするには、別名を使用します。

Select b.* , a.[Rank_1]/count(b.[Date]) * 100 as Percentile from 
    [Country_table1$] b 
    inner join 
    (
select [MSCI_Price_idx], [Country], rank() OVER (PARTITION BY [Country] 
    ORDER BY [MSCI_Price_idx] DESC) AS [Rank_1] 
    from [Country_table1$] 
    GROUP BY [MSCI_Price_idx],[Country] 
) a 
ON a.[Country] = b.[Country] 
    where b.[Country] = 'AUSTRALIA' 
+0

ありがとうございました。この作品 –

関連する問題