标签: pivot

帮助SQL - 将两行合并为一行

我有一个有趣的SQL问题,我需要帮助.

以下是示例数据集:

Warehouse  DateStamp   TimeStamp  ItemNumber  ID
    A       8/1/2009    10001         abc      1
    B       8/1/2009    10002         abc      1 
    A       8/3/2009    12144         qrs      5
    C       8/3/2009    12143         qrs      5
    D       8/5/2009    6754          xyz      6
    B       8/5/2009    6755          xyz      6
Run Code Online (Sandbox Code Playgroud)

此数据集表示两个仓库之间的库存转移.有两个记录代表每次传输,这两个传输记录总是具有相同的ItemNumber,DateStamp和ID.两个传输记录的TimeStamp值始终为1,其中较小的TimeStamp表示源仓库记录,较大的TimeStamp表示目标仓库记录.

使用上面的示例数据集,这是我需要的查询结果集:

Warehouse_Source  Warehouse_Destination  ItemNumber  DateStamp
    A                B                      abc       8/1/2009
    C                A                      qrs       8/3/2009
    D                B                      xyz       8/5/2009   
Run Code Online (Sandbox Code Playgroud)

我可以编写代码来生成所需的结果集,但我想知道这个记录组合是否可以通过SQL实现.我使用SQL Server 2005作为我的底层数据库.我还需要向SQL添加一个WHERE子句,例如,我可以在Warehouse_Source = A上搜索.不,我无法更改数据模型;).

任何意见是极大的赞赏!

问候,马克

sql pivot sql-server-2005

0
推荐指数
1
解决办法
9705
查看次数

Excel VBA:更新Pivot Sourcedata

我试着记录代码来更新一个pivot sourcedata,它给了我这个:

ActiveSheet.PivotTableWizard SourceType:=xlExternal, _
    SourceData:=QueryArry1, _
    Connection:=Array( _
        Array("ODBC;DSN=MS Access Database;DBQ=" & DBDir & "\" & DBName & ";"), _
        Array("DefaultDir=" & DBDir & ";DriverId=25;FIL=MS Access;MaxBufferSize=2048;PageTimeout=5;") _
    )
Run Code Online (Sandbox Code Playgroud)

但这甚至不允许我指定我想要更新的WHICH数据透视表...甚至做我真正想做的事情,即更新pivotcache以便更新使用相同源的所有数据透视表.

那么更新sourcedata的好方法是什么?

谢谢

编辑:

但我甚至得到了"应用程序定义或对象定义的错误"错误,其中包含以下简单内容:

str = Sheets("Totals").PivotTables("PivotTable2").PivotCache.CommandText
Sheets("Totals").PivotTables("PivotTable2").PivotCache.CommandText = str
Run Code Online (Sandbox Code Playgroud)

我确实仔细检查了我的数据透视表仍在点击实时数据并刷新它仍然有效...但我不能将命令字符串设置为当前的状态?太奇怪了.

谢谢

database excel vba pivot excel-vba

0
推荐指数
1
解决办法
6391
查看次数

SQL列到行的转换

我有一个具有以下结构的表:

Col1    Col2
---------------
1        2    
3        4
Run Code Online (Sandbox Code Playgroud)

我需要以这样的方式查询输出应该是这样的:

ColumnName |  ColumnValue
----------------------------
Col1          1
Col2          2
Col1          3
Col2          4
Run Code Online (Sandbox Code Playgroud)

任何帮助都将非常感谢.提前致谢.

sql database pivot

0
推荐指数
1
解决办法
1571
查看次数

如何在SQL Server 2005中不使用数据透视表将一堆行转换为聚合列?

这是一个场景:我有一个表记录了user_id,module_id以及查看模块的日期/时间.

例如.

Table: Log
------------------------------
User_ID  Module_ID   Date
------------------------------
1       red         2001-01-01
1       green       2001-01-02
1       blue        2001-01-03
2       green       2001-01-04
2       blue        2001-01-05
1       red         2001-01-06
1       blue        2001-01-07
3       blue        2001-01-08
3       green       2001-01-09
3       red         2001-01-10
3       green       2001-01-11
4       white       2001-01-12
Run Code Online (Sandbox Code Playgroud)

我需要得到一个结果集,其中user_id为第1列,然后是每个模块的列.然后行数据是user_id以及用户查看每个模块的次数.

例如.

---------------------------------
User_ID  red green   blue    white
---------------------------------
1       2   1       2       0
2       0   1       1       0
3       1   2       1       0
4       0   0       0       1
Run Code Online (Sandbox Code Playgroud)

我最初认为我可以用PIVOT做到这一点,但没有骰子; 数据库是在SQL Server 2005中运行的已转换的SQL Server 2000数据库.我无法更改兼容级别,因此数据库已关闭. …

sql sql-server pivot sql-server-2005

0
推荐指数
1
解决办法
1305
查看次数

将行作为列返回

我喜欢将它作为单个查询来做,但我认为它需要一个游标.如果我不能将它作为单个查询执行,我想将结果输出为SYS_REFCURSOR.一个简化的例子:

产品

ID   NAME         Part Number   SKU
------------------------------------
1    Widgetizer     150         1001
2    Widgetizer200  200         1002
3    WidgetizerDlx  250         1003
Run Code Online (Sandbox Code Playgroud)

PRODUCT_SPEC

P_ID   NAME     VALUE
----------------------------
1      WEIGHT    5
1      HEIGHT    10
1      VERSION   1
1      COLOR     RED
2      WEIGHT    7
2      HEIGHT    10
2      VERSION   2
2      COLOR     BLUE
Run Code Online (Sandbox Code Playgroud)

查询:

对于SKU小于1003的每种产品,请返回:

Product name, part #, SKU, WEIGHT, HEIGHT, COLOR
Run Code Online (Sandbox Code Playgroud)

sql oracle pivot oracle10g

0
推荐指数
1
解决办法
386
查看次数

有什么方法可以将SQL表中的数据从行列转换为列行?

有什么方法可以将SQL表中的数据从行列转换为列行?

还允许过滤器/在初始查询中应用条件的位置.

使用SQL Server 2008.

现有表具有以下列:AID(nvarchar唯一)ASID(nvarchar唯一)里程碑(M1,M2,M3 ... M100)MilestoneDate(datetime)

转置数据如下:AID,ASID,M1日期,M2日期,M3日期,M5日期

sql t-sql transpose pivot sql-server-2008

0
推荐指数
1
解决办法
7458
查看次数

MySQL中的动态查询

我有一张桌子.

/------------------------------------\
| LocID | Year | Birth | Death | Abc |
|------------------------------------|
|  1    | 2011 | 100   | 60    | 10  |
|------------------------------------|
|  1    | 2012 | 98    | 70    | 20  |
|.....                               |
\------------------------------------/
Run Code Online (Sandbox Code Playgroud)

我需要输出(Condition LocID = 1)

/---------------------\
| Event | 2011 | 2012 |
|---------------------|
| Birth |  100 |  98  |
|---------------------|
| Death |  60  |  70  |
|---------------------|
| Abc   |  10  |  20  |
\---------------------/
Run Code Online (Sandbox Code Playgroud)

该表可能包含更多基于各种要求的字段...因此行数将取决于字段数(忽略LOCID和YEAR).列是不变的.仅为2年(将给予年度2012年,然后需要显示2011年和2012年).

基本上需要将列名称作为行值,列值作为列标题...

任何帮助......

mysql pivot unpivot dynamic

0
推荐指数
1
解决办法
4684
查看次数

用于"不完全透视"的T-SQL

我有以下源数据(数据是几百行源的提取.):

ID  CodeID  Code
3749    69  354
3750    69  864
33721  130  XXX
33722  130  319
30446  159  XXX
30447  159  XXX
Run Code Online (Sandbox Code Playgroud)

并使用T-SQL我需要实现:

CodeID  Code1   Code2
69      354     864
130     XXX     319
159     XXX     XXX
Run Code Online (Sandbox Code Playgroud)

这似乎不适合数据透视表的结构,我不知道如何实现这一点.有没有人有什么建议.

t-sql sql-server pivot

0
推荐指数
1
解决办法
36
查看次数

将行转换为SQL Server 2008 R2中的列

我怎么转这个:

在此输入图像描述

还有这个:

在此输入图像描述

进入这个:

在此输入图像描述

在SQL Server 2008 R2中?

sql pivot sql-server-2008-r2

0
推荐指数
1
解决办法
5万
查看次数

SQL Server在多个列上进行透视

我有一个表,可以按小时计算一周的数据.

这是表结构(一天):

dayId   HourId  amount  category
--------------------------------
1       9       1       a
1       9       1       b
1       9       1       c
1       9       1       d
1      10       1       a
1      10       1       b
1      10       1       c
1      10       1       d
1      11       1       a
1      11       1       b
1      11       0       c
1      11       1       d
1      12       0       a
1      12       2       b
1      12       2       c
1      12       2       d
Run Code Online (Sandbox Code Playgroud)

我使用pivot来查看日常金额分布如下:

select 
    dayid,
    [9],
    [10],
    [11],
    [12]
from
    (select …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server pivot sql-server-2012

0
推荐指数
1
解决办法
743
查看次数