繁体   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