【问题标题】:do not succeed to make pivot with group by没有成功通过 group by
【发布时间】:2013-08-06 08:56:38
【问题描述】:

我已经建立了这个查询:

SELECT *
FROM 
(
   SELECT [VendorCode], [VendorName], 
      year(CheckDate) as 'year',
      left(datename(month,CheckDate),3) as [month], 
      [CheckSum] as 'Amount'
   FROM ocho 
   WHERE [Canceled] ='N'
) as abc
PIVOT
(
  SUM(Amount)
  FOR [month] IN (jan, feb, mar, apr, may, jun, jul, aug, sep, oct, nov, dec)
) AS sumpivot

我得到一个表格,每个供应商都没有汇总到一行,每个供应商都在 12 个月或更短的时间内,这取决于我们用支票支付了他们多少个月。我试图通过到 vendorcodename 我失败了。

【问题讨论】:

  • 我很难理解您的问题 - 您能否编辑问题并包括您遇到的错误,以及您需要帮助的原因?
  • 你是什么意思我失败了?你有错误吗?请使用一些示例数据和所需结果编辑您的问题。
  • 各位,非常感谢你们,你们帮了我很多。

标签: sql sql-server pivot


【解决方案1】:

我认为一切正常 -

查询:

DECLARE @temp TABLE
(
      VendorCode INT
    , VendorName NVARCHAR(50)
    , CheckDate DATETIME
    , Canceled CHAR(1)
    , [CheckSum] DECIMAL(10,2)
)

INSERT INTO @temp (VendorCode, VendorName, CheckDate, Canceled, [CheckSum])
VALUES 
    (1, '1', '20100101', 'N', 4),
    (2, '2', '20100303', 'N', 2),
    (2, '2', '20100601', 'N', 1),
    (2, '2', '20100604', 'N', 99)

SELECT *
FROM 
(
    SELECT 
          [VendorCode]
        , [VendorName]
        , [year] = YEAR(CheckDate)
        , [month] = LEFT(DATENAME(MONTH, CheckDate), 3) 
        , Amount = [CheckSum] 
    FROM @temp 
    WHERE Canceled = 'N'
) abc
PIVOT
(
    SUM(Amount)
    FOR [month] IN (
                jan, feb, mar, 
                apr, may, jun, 
                jul, aug, sep, 
                oct, nov, [dec])
) sumpivot

输出:

VendorCode  VendorName year   jan    feb   mar   apr   may   jun     jul   aug   sep   oct    nov    dec
----------- ---------- ------ ------ ----- ----- ----- ----- ------- ----- ----- ----- ------ ------ ------
1           1          2010   4.00   NULL  NULL  NULL  NULL  NULL    NULL  NULL  NULL  NULL   NULL   NULL
2           2          2010   NULL   NULL  2.00  NULL  NULL  100.00  NULL  NULL  NULL  NULL   NULL   NULL

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-09-01
    • 2021-04-01
    • 2021-01-09
    • 1970-01-01
    • 2020-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多