【问题标题】:SQL Pivot Table Subtotal Syntax errorSQL 数据透视表小计语法错误
【发布时间】:2014-04-23 05:47:42
【问题描述】:

希望有人可以帮助我。我能够把这个 SQL 脚本放在一起,但它到处都有小错误。我一直在尝试调试一个多星期。请帮忙。第一条错误消息是“')' 附近的语法不正确。”如果您解决了它会不断抛出更多问题,那么我认为我的编码不正确。我无法保存有效的更改。它告诉我保存请求已中止。使用 SQL Server 2008 r2

SELECT     
PublicationID AS PubID, (PubNum + '-  ' + PubTitle) AS [Pub Descr], 
CONVERT(Varchar(10), [Datestamp], 101) AS [Date Printed], 
QtyPrinted AS [Qty Printed], 
[2] AS [Tyler Inventory], 
[1] AS [Central Inventory], 
[3] AS [Mailing House Inventory],

(
SELECT     SUM(S)
FROM  
(
SELECT [1] UNION ALL
SELECT [2] UNION ALL
SELECT [3]
) AS T (S)) AS [Current Inventory], 
RecycledQty AS [Recycled], 
MailingVendorName AS [Mailing Vendor], 
PrintVendorName AS [Print Vendor]

FROM
(
SELECT 
PublicationID, LocationID, Balance, PubNum, 
PubTitle, ItemPerCase, Datestamp, Deleted,     
RecycledQty, MailingVendorName, PrintVendorName, 
QtyPrinted

FROM          
(
dbo.view_PubInventory_Main_Summary_RAW) x PIVOT (sum(balance) FOR 
LocationID IN ([1],   [2], [3])) p)
    SELECT     *
     FROM  
     (SELECT   PUBID, [Pub Descr], [Date Printed], [Qty Printed], 
      [Tyler Inventory], [Central Inventory], 
      [Mailing House Inventory], [Current Inventory], [Recycled],
      [Mailing Vendor]
      FROM GG
      ) AS T

【问题讨论】:

  • 我使用以下两个帖子来帮助我构建自己的查询。 stackoverflow.com/questions/7925748/…
  • 您打算进行多少次查询?我看到 2 个不同的查询。您打算如何处理顶部查询中的子选择?毫无疑问,查询格式不正确,但对您尝试执行的操作的一些额外见解可能会有所帮助。
  • 主要思想是在报告的列中列出每个位置的库存水平,并在报告的最右侧列显示总库存。我不小心向这个查询添加了额外的语法,我似乎无法调试它。该查询在作为视图保存到 SQL Server 时是工作属性,但是每当我尝试保存 SQL 视图时,它都会告诉我语法不正确并且不会保存。因此,您看到的是一个数据透视表,其中包含每个位置的每个库存的总计和总计。

标签: sql sql-server-2008-r2 syntax-error pivot subtotal


【解决方案1】:

很难准确地遵循您所追求的,但我认为您希望 Current Inventory 只是 [1]+[2]+[3],并且您没有为子查询设置别名。底部的查询看起来不错。

 SELECT PublicationID AS PubID
      , PubNum + '-  ' + PubTitle AS [Pub Descr]
      , CONVERT(VARCHAR(10), [Datestamp], 101) AS [Date Printed]
      , QtyPrinted AS [Qty Printed]
      , [2] AS [Tyler Inventory]
      , [1] AS [Central Inventory]
      , [3] AS [Mailing House Inventory]
      , [1]+[2]+[3] AS [Current Inventory]
      , RecycledQty AS [Recycled]
      , MailingVendorName AS [Mailing Vendor]
      , PrintVendorName AS [Print Vendor]
 FROM   ( SELECT    PublicationID
                  , LocationID
                  , Balance
                  , PubNum
                  , PubTitle
                  , ItemPerCase
                  , Datestamp
                  , Deleted
                  , RecycledQty
                  , MailingVendorName
                  , PrintVendorName
                  , QtyPrinted
           FROM     dbo.view_PubInventory_Main_Summary_RAW
           PIVOT ( SUM(balance) FOR LocationID IN ( [1], [2], [3] ) ) p
        )AS Sub

【讨论】:

    猜你喜欢
    • 2017-02-24
    • 2021-11-03
    • 2013-03-12
    • 1970-01-01
    • 2013-10-09
    • 1970-01-01
    • 2014-08-01
    • 2017-05-13
    相关资源
    最近更新 更多