簡體   English   中英

SQL Server不正確的語法錯誤

[英]SQL Server Incorrect Syntax error

感謝您的幫助和閱讀,我有以下查詢,但我不明白為什么會出現此錯誤消息:

Msg 102,第15級,狀態1,第1行
“價格”附近的語法不正確

我可以在獨立查詢中查詢此數據列(批發價)。 我正在使用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中,必須轉義包含特殊字符的名稱-空格是特殊字符。 因為讀取和編寫具有很多方括號的代碼很麻煩,所以一般建議避免使用此類名稱。

就您而言,您缺少方括號:

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沒有任何意義。 您想要匯總值,因此通常不會去那里。

檢查此選擇語句是否出錯

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

非常感謝! 戈登!

兩個SUM語句都應使用以下格式措辭:Sum(ILE。[Quantity]和Sum(PP。[Wholesale Price])

    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];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM