2016-11-30 20 views
0

感謝、私は以下のクエリを持っていると、このエラーメッセージが発生した理由を私は理解していない:SQL Serverの不正な構文エラー

メッセージ102、レベル15、状態1、行1
'Price'付近の構文が正しくありません

私はこのデータ列(Wholesale Price)をスタンドアロンクエリでクエリできます。私はSQL Server 2005 Management Studioを使用しています。

SELECT 
    ILE.[Location Code], 
    ILE.SUM(Quantity) AS "Transfer Qty", 
    PP.SUM(Wholesale Price) AS "Transfer Cost (HK)" 
FROM 
    [DB].[dbo].[Company$Item Ledger Entry] ILE 
INNER JOIN 
    [DB].[dbo].[Company$Purchase Price] PP ON ILE.[Item No_] = PP.[Item No_] 
              AND ILE.[Variant Code] = PP.[Variant Code] 
WHERE 
    ILE.[Entry Type] = '4' 
    AND ILE.[Location Code] NOT LIKE '%STAFF%' 
    AND ILE.[Location Code] NOT LIKE 'WHSPACKAGE' 
    AND ILE.[Location Code] NOT LIKE 'WHS' 
GROUP BY 
    ILE.[Location Code], ILE.[Quantity], PP.[Wholesale Price] 
ORDER BY 
    [Location Code] 

ありがとう!

よろしく、SQLで パトリック

+1

あなたは '卸売Price'周りの角括弧が欠落しています。 –

答えて

6

、あなたは特殊文字を含む名前をエスケープする必要があります - とスペースは特殊文字です。角カッコがたくさんあるコードを読み書きするのは面倒なので、一般的なアドバイスはそのような名前の使用を避けることです。あなたのケースでは

、あなたは角括弧が欠落している。また

SELECT ILE.[Location Code], ILE.Sum(Quantity) as "Transfer Qty", 
     Sum(PP.[Wholesale Price]) as "Transfer Cost (HK)" 
FROM [DB].[dbo].[Company$Item Ledger Entry] ILE INNER JOIN 
    [DB].[dbo].[Company$Purchase Price] PP 
    ON ILE.[Item No_] = PP.[Item No_] AND 
     ILE.[Variant Code] = PP.[Variant Code] 
Where ILE.[Entry Type] = '4' AND 
     ILE.[Location Code] NOT LIKE '%STAFF%' AND 
     ILE.[Location Code] NOT LIKE 'WHSPACKAGE' AND 
     ILE.[Location Code] NOT LIKE 'WHS' 
Group by ILE.[Location Code], ILE.[Quantity] 
Order by [Location Code]; 

  • PP.SUM()は意味がありません。テーブルのエイリアスは列名になります。
  • GROUP BYに卸売価格を置くことは理にかなっていません。あなたは値を集計したいので、通常そこには行きません。
0

チェックあなたのエラーのため、このSELECT文を

SELECT 
    ILE.[Location Code], 
    ILE.SUM(Quantity) AS "Transfer Qty", 
    PP.SUM([Wholesale Price]) AS "Transfer Cost (HK)"--Error line 
0

ありがとうございました!ゴードン!

両方SUM文はこのフォーマット文言である必要があり、 合計(ILE。[数量]と和(PP。[卸売価格])

SELECT ILE.[Location Code], Sum(ILE.[Quantity]) as "Transfer Qty", 
      Sum(PP.[Wholesale Price]) as "Transfer Cost (HK)" 
     FROM [Dummy-28-Oct-2016].[dbo].[TEST ENV$Item Ledger Entry] ILE  
INNER JOIN [Dummy-28-Oct-2016].[dbo].[TEST ENV$Purchase Price] PP 
     ON ILE.[Item No_] = PP.[Item No_] 
     AND ILE.[Variant Code] = PP.[Variant Code] 
    Where ILE.[Entry Type] = '4' 
     AND ILE.[Location Code] NOT LIKE '%STAFF%' 
     AND ILE.[Location Code] NOT LIKE 'WHSPACKAGE' 
     AND ILE.[Location Code] NOT LIKE 'WHS' 
    Group by ILE.[Location Code], ILE.[Quantity] 
    Order by [Location Code];