相关疑难解决方法(0)

SQL Server动态PIVOT查询?

我的任务是提出翻译以下数据的方法:

date        category        amount
1/1/2012    ABC             1000.00
2/1/2012    DEF             500.00
2/1/2012    GHI             800.00
2/10/2012   DEF             700.00
3/1/2012    ABC             1100.00
Run Code Online (Sandbox Code Playgroud)

进入以下内容:

date        ABC             DEF             GHI
1/1/2012    1000.00
2/1/2012                    500.00
2/1/2012                                    800.00
2/10/2012                   700.00
3/1/2012    1100.00
Run Code Online (Sandbox Code Playgroud)

空白点可以是NULL或空白,也可以是好的,并且类别需要是动态的.另一个可能的警告是,我们将以有限的容量运行查询,这意味着临时表已经出局.我已经尝试过研究并且已经登陆了,PIVOT但是在我真的不理解它之前我从未使用过它,尽管我尽了最大的努力去解决它.谁能指出我正确的方向?

sql t-sql sql-server pivot

190
推荐指数
5
解决办法
20万
查看次数

如何在SQL Server中透视文本列?

我的数据库中有这样的表(SQL Server 2008)

ID      Type            Desc
--------------------------------
C-0 Assets          No damage
C-0 Environment     No impact
C-0 People          No injury or health effect
C-0 Reputation      No impact
C-1 Assets          Slight damage
C-1 Environment     Slight environmental damage
C-1 People          First Aid Case (FAC)
C-1 Reputation      Slight impact; Compaints from local community
Run Code Online (Sandbox Code Playgroud)

我必须将Assets,People,Environment和Reputation显示为列,并将匹配的Desc显示为值.但是当我运行数据透视查询时,我的所有值都为空.

有人可以查看我的查询并告诉我我在哪里做错了吗?

Select severity_id,pt.[1] As People, [2] as Assets , [3] as Env, [4] as Rep
FROM 
(
    select * from COMM.Consequence
) As Temp
PIVOT
(
    max([DESCRIPTION]) 
    FOR [TYPE] In([1], …
Run Code Online (Sandbox Code Playgroud)

sql pivot sql-server-2008

20
推荐指数
1
解决办法
3万
查看次数

如何在 AWS Athena 中将行转换为列?

我是 AWS Athena 的新手,并试图将一些行转为列,类似于此StackOverflow 帖子中的最佳答案。

但是,当我尝试时:

SELECT column1, column2, column3
FROM data
PIVOT
(
  MIN(column3)
  FOR column2 IN ('VALUE1','VALUE2','VALUE3','VALUE4')
)
Run Code Online (Sandbox Code Playgroud)

我收到错误: mismatched input '(' expecting {',', ')'} (service: amazonathena; status code: 400; error code: invalidrequestexception

有谁知道如何在 AWS Athena 中完成我想要实现的目标?

sql pivot amazon-web-services amazon-athena

13
推荐指数
3
解决办法
1万
查看次数

SQLITE 将大量行转置为列

我有一个这样订购的数据库:

    ID     |    Subject     |      Value
 ---------------------------------------------
     1            Subj1            Val1
     1            Subj2            Val2
     2            Subj1            Val3
     2            Subj5            Val4
Run Code Online (Sandbox Code Playgroud)

等等。ID 数以千计,受试者数以万计。

我想找到这个矩阵的转置。我怎么做?

如果主题是一个小的静态集,那么我可以使用 CASE 语句,如以下解决方案所示:SQLITE - transpose rows into columnsproperly,但在我的情况下,主题是一个大的动态集,所以 CASE 将无法工作,除非我正在数据库外部的某些应用程序中动态构建 SQL。就我而言,没有“应用程序”;正如我在下面的评论中提到的,我正在寻找一个纯 SQL 解决方案。

问题是:我正在使用 SQLite,它缺少 PIVOT 语句,这将使这变得更容易。我不知道是否还有办法做到这一点,并且没有学到太多过去的连接类型。对于较小的数据库,我会尝试一系列左连接,但由于结果中有很多列值,我不知道如何操作。

如何转换成这种形式?

      ID      |     Subj1       |        Subj2      |    Subj3     |       etc.
   --------------------------------------------------------------------
      1              Val1                  Val2            0        
      2              Val3                   0              0 
Run Code Online (Sandbox Code Playgroud)

sqlite pivot

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

按日期从长格式到宽格式的 T-SQL PIVOT 数据

如果可能的话,我想使用 t-sql 数据透视函数将我的数据从长数据透视到宽数据。我当前的表看起来像:

ID  DATE        NUM VALUE
1   2005-01-20  29  197
1   2005-01-20  28  58
1   2005-01-20  30  90
1   2005-02-08  29  210
1   2005-02-08  30  133
1   2005-02-08  28  67
2   2005-01-10  28  87
2   2005-01-10  30  119
2   2005-07-11  28  77
2   2005-07-11  29  174
Run Code Online (Sandbox Code Playgroud)

输出应如下所示:

ID  DATE        V28 V29  V30
1   2005-01-20  58  197  90
1   2005-02-08  67  210  133
2   2005-01-10  87  NULL 119
2   2005-07-11  77  74   NULL
Run Code Online (Sandbox Code Playgroud)

sql-server

4
推荐指数
1
解决办法
3020
查看次数

对于同一行SQL Server上的每个显示

我正在尝试创建一个包含程序集编号和每个组件的行.

我有一个Assembly带有唯一标识符的表,可以绑定到inv_mast表以及该表中可以绑定到同一个inv_mast表的组件.它还包括序列号.

inv_mast_uid |  sequence_number |   component_inv_mast_uid

453061       | 1                | 453024
453061       | 2                | 453017
453061       | 3                | 453020
453062       | 1                | 453019
453062       | 2                | 453027
Run Code Online (Sandbox Code Playgroud)

(我的一些条目只有2个组件)

我想要实现的是:

inv_mast_uid |  component_inv_mast_uid_1 |  component_inv_mast_uid_2    | component_inv_mast_uid_3
453061       | 453024                    | 453017                       | 453020    
453062       | 453019                    | 453027                       | Null  
Run Code Online (Sandbox Code Playgroud)

我以为我会使用'For Each`循环,但我从来没有运气和SQL Server

sql sql-server foreach

3
推荐指数
1
解决办法
54
查看次数

动态PIVOT,从两个表的JOIN返回结果

我认为是一个相当简单的查询似乎比我预期的更棘手.

我有两张桌子.与一对多的关系.我想要做的是表2返回的任何记录,我希望它在一个单独的列中.我已经设法在以下查询中使用相对较小的数据并知道第二个表返回的内容.

样本数据

DECLARE @TABLE1 TABLE(UserID INT,Episode INT ,[Value] VARCHAR(100))
INSERT INTO @TABLE1 VALUES
(1, 1,'VALUE 1-1'),(1, 2,'VALUE 1-2')

DECLARE @TABLE2 TABLE(UserID INT,Episode INT ,[Details] VARCHAR(100))
INSERT INTO @TABLE2 VALUES
(1, 1,'Details 1'),(1, 1,'Details 2'),(1, 2,'Details 1'),(1, 2,'Details 2') 
Run Code Online (Sandbox Code Playgroud)

简单加入

SELECT  ONE.UserID
      , ONE.Episode
      , ONE.Value
      , TWO.Details 
FROM @TABLE1 ONE INNER JOIN @TABLE2 Two
ON ONE.UserID = TWO.UserID 
AND ONE.Episode = TWO.Episode

????????????????????????????????????????????
? UserID ? Episode ?   Value   ?  Details  ?
????????????????????????????????????????????
?      1 ?       1 ? VALUE …
Run Code Online (Sandbox Code Playgroud)

sql sql-server pivot sql-server-2008

2
推荐指数
1
解决办法
2251
查看次数

SQL Sum Query问题

我是SQL Server的新手并且正在努力解决这个问题.

我有两个选择语句

SELECT 
    SUM(Amount) AS "MONDAY" 
FROM 
    Transaction 
WHERE 
    Transaction_Date = '2015-12-21 00:00:00.000'

SELECT 
    SUM(Amount) AS "TUESDAY" 
FROM 
    Transaction 
WHERE 
    Transaction_Date = '2015-12-22 00:00:00.000'
Run Code Online (Sandbox Code Playgroud)

他们的结果分别为2,00,000和3,00,000

我希望输出显示为两列

SQL Server屏幕上的(第1列+星期一)和(第2列=星期二)

sql-server sum

2
推荐指数
1
解决办法
103
查看次数

将行转置为SQL Server中的列

有没有办法转置这个表:

A   a
A   b
A   c
A   d
B   e
B   f
C   g
C   h
C   i
Run Code Online (Sandbox Code Playgroud)

这个?

A   B   C
a   e   g
b   f   h
c       i
d       
Run Code Online (Sandbox Code Playgroud)

非常感谢!

sql sql-server sql-server-2008

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