问题标签 [pivot]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1442 浏览

sql-server - 我怎样才能为此使用 SQL Pivot?

我有一个按以下方式组织的数据集:

其中 A0001 是项目 #1 的值 A,B0001 是项目 #1 的值 B。一个表可以有60多个不同的项目,每个项目有一个A值列和一个B值列,即表中总共有120多个列。

我想要得到的是一个 3 列结果(项目索引、A 值、B 值),它对每个项目的 A 和 B 值求和:

当我从列到行时,我希望解决方案中有一个支点,但我不确定如何充实它。部分问题是如何去除 A 和 B 以形成索引列的值。另一部分是我以前从未使用过 Pivot,所以我也对基本语法感到困惑。

我认为最终我需要有一个多步骤解决方案,首先将总和构建为:

然后修改 ColName 数据以去除索引:

最后自加入将 B 值向上移动到 A 值旁边。

要得到我想要的东西,这似乎是一个漫长的过程。因此,我正在寻求关于我是否走在正确道路上的建议,或者是否有另一种我已经忽略的方法可以让我的生活变得更加轻松。

注 1) 解决方案必须在 MSSQL 2005 上的 T-SQL 中。

注2) 表格的格式不能更改。

编辑我考虑过的另一种方法在每列上使用 UNION 和单独的 SUM():

但是这种方法看起来也不是很好

编辑 到目前为止,有两个很好的回应。但我想在查询中再添加两个条件:-)

1)我需要根据一系列时间戳(minv < timestamp < maxv)选择行。

2) 我还需要有条件地选择处理时间戳的 UDF 上的行

使用 Brettski 的表名,上述内容是否会转换为:

鉴于我有条件地添加了 fn() 要求,我认为我还需要按照 Jonathon 的建议走动态 SQL 路径。特别是因为我必须为 12 个不同的表构建相同的查询——所有表的样式都相同。

0 投票
6 回答
2313 浏览

asp.net - 填充 Datagrid 和 Sql 查询

我在数据库中有 3 个表,如下所示。我想制作一份报告,就像下面显示的链接一样。如何使用 datagrid 或 datalist 做到这一点?哪个是最好的chois?我已经尝试了一个星期。

http://img123.imageshack.us/my.php?image=61519307xx5.jpg

公司:ID_COMPANY,COMPANY_NAME

产品:ID_PRODUCT、PRODUCT_NAME

PRODUCT_SALE:ID_COMPANY、ID_PRODUCT、SALE_COUNT

更新

在你的帮助下,我可以做到。但是现在我也有一个小问题。

当我使用枢轴编写查询时,产品名称成为列标题。如果产品名称的长度大于 30 个字符,Oracle 不接受它作为列标题。所以我已经裁剪并制作了 30 个字符的产品名称来解决这个问题。之后也出现了问题。

当我将产品名称裁剪为 30 个字符时,某些产品会变成相同的名称,并且出现“ORA-00918:列不明确定义”错误消息。

在这种情况下可以做什么?

0 投票
3 回答
11154 浏览

sql - 如何在 MS Access 2007 或 MS SQL Server 2005 中通过 SQL 将字段转换为行

我有一个旧版 MS Access 2007 表,其中包含 52 个字段(一年中的每周 1 个字段)代表历史销售数据(实际上加上一个字段)。我想将此数据库转换为更传统的时间/值列表。

有谁知道如何在不使用 52+ 显式参数编写查询的情况下做到这一点?

(如果MS SQL Server 2005下存在解决方案,我也可以导出/导入表)

0 投票
2 回答
2861 浏览

c# - 另一个 LINQ Pivot 问题 - 将 SQL 脚本转换为 LINQ

已经有一些关于 LINQ 枢轴的问题,虽然其中一些概述了我的确切问题,但我无法成功地将它们转化为有效的解决方案。我觉得这主要是由于我的表中的加入。

因此,为了所有热爱问题的 LINQ 爱好者的利益,这里有另一个难题供您解决。请通过将以下 SQL 存储的 proc 脚本转换为 LINQ 来帮助我(并赢得一些声誉积分和我的尊重):

0 投票
4 回答
10308 浏览

sql - 在 Oracle 中使用数据透视表的建议

我需要一个报告,我应该为它使用数据透视表。报告将按类别分组。在声明时使用案例不好,因为有很多类别。你可以将 Northwind 数据库视为示例,所有类别将显示为列和报告将显示客户在类别中的偏好。我不知道另一种解决方案,并在 Internet 中看到了用于 Sql Server 的存储过程的示例。除了使用案例之外,你知道一个解决方案吗?

谢谢

0 投票
1 回答
3355 浏览

sql - 与包含值的 nn 表交叉连接(枢轴)

我有 3 张桌子:

MyValue 的行仅在提供实际值时创建。

我希望我的结果以表格方式显示,如:

我已经成功创建了一个交叉连接:

或者,在 linq 中:

并了解如何在 linq 中创建一个支点(此处此处):

(假设 MyDatas 是具有上一个查询结果的视图):

但我想找到一种方法来创建一个结果集,如果可能的话,Month1, ... 属性是动态的。

注意:导致 n+1 查询的解决方案:

0 投票
4 回答
1390 浏览

sql - 如何使用 SQL Server 2005 透视我的数据

我有以下数据

替代文字

如何将它(使用 SQL Server 2005)转换为以下格式?

替代文字

我有一个我想出的示例解决方案,但它似乎有点笨拙。可能有味道?

有趣的是我不关心每个 LANG_* 列中显示的特定语言。此处发布的其他问题似乎都涉及按名称了解旋转列。但我不想用找到的语言来命名列。

注意:我知道我提到了“pivot”这个词,但这个问题的最佳解决方案可能不涉及 PIVOT 子句。我只是使用了这个词,因为我的问题似乎暗示了数据透视。也许 CTE 会帮助解决问题,我不知道。我只知道我对上面的示例解决方案不满意。

0 投票
5 回答
2391 浏览

sql - 将单个记录(行)显示为单个列

我正在寻找将单行数据显示为单列(多行)的方法。例如,

有没有办法用 SQL Server 2005 做到这一点?

0 投票
2 回答
4027 浏览

sql-server - 在 MS SQL Server 2005 中使用 Pivot 转换时出错

我有下表,我正在旋转:

(ID、名称、值)

1, '任务 ID', 123

1、“语言”、“Java”

2, '任务 ID', 456

我已将 PivotKey 设置为 Name 列,并将 PivotedValue 设置为 Value 列。对于我的每个新列(任务 ID 和语言),我已将它们的 PivotKeyValue 分别设置为“任务 ID”和“语言”。我的包在上面的数据下运行良好,pivot 操作的结果是:

(ID、任务 ID、语言)

1, 123, '爪哇'

2, 456, 空

但是,当我在以下源数据上运行包时,我遇到了问题:

(ID、名称、值)

1、空、空

2、空、空

我得到的错误信息是:

[枢轴 [4511]] 错误:枢轴键值“(无法转换为字符串)”无效。[DTS.Pipeline] 错误:SSIS 错误代码 DTS_E_PROCESSINPUTFAILED。组件“Pivot”(4511) 上的 ProcessInput 方法失败,错误代码为 0xC0202090。已识别的组件从 ProcessInput 方法返回错误。该错误是特定于组件的,但该错误是致命的,将导致数据流任务停止运行。在此之前可能会发布错误消息,其中包含有关失败的更多信息。

我认为这意味着数据透视操作无法处理 PivotKey 列“名称”中的 NULL 值,因为它尚未配置为处理该值。问题是我不知道该怎么做。如何检测和处理输出列的 PivotKeyValue 属性中的 NULL 值(“输入和输出属性”表单)?

谢谢你的时间。

0 投票
4 回答
3769 浏览

xslt - 使用 XSLT 进行数据透视

我有一个这样的xml文件:

我想使用 XSLT 对其进行转换以获得类似:

换句话说,我得到一个项目列表,每个项目都有一个状态,我想把它变成一个状态列表,每个状态都有一个项目列表。

我最初的想法是依次应用匹配每个状态类型的模板,但这意味着我必须知道完整的状态列表。有更好的方法吗?

谢谢你的帮助。