当前位置: 首页 > 面试题库 >

动态数据透视表结果到临时表

江承嗣
2023-03-14
问题内容

虽然我能够在这些论坛中找到如何旋转这些数据的方法,但是我还没有找到将结果推送到临时表的方法,以便可以将其用于其他查询。代码如下。是否有可能使此输出填充临时表?

SET @cols = STUFF((SELECT distinct ',' + QUOTENAME(QT.QUESTION_DESC)
                 FROM #QUES_TEMP QT
                 GROUP BY QT.QUESTION_DESC
                 FOR XML PATH(''), TYPE
                 ).value('.', 'NVARCHAR(MAX)')
                 ,1,1,'')

set @query = 'SELECT EVAL_ID, AuditType, ' + @cols + ' 
            into ##tmp
            from
        (
            select     QT.EVAL_ID,
                       QT.AuditType,
                       QT.SCORE,
                       QT.QUESTION_DESC

            from #QUES_TEMP QT
         ) x

        pivot
        (
             max(SCORE)
             for QUESTION_DESC in (' + @cols + ')
        ) p '

execute(@query);

select * from ##tmp

问题答案:

您应该可以使用INTO子句。我在您的示例中添加了INTO。

SET @cols = STUFF((SELECT distinct ',' + QUOTENAME(QT.QUESTION_DESC)
                 FROM #QUES_TEMP QT
                 GROUP BY QT.QUESTION_DESC
                 FOR XML PATH(''), TYPE
                 ).value('.', 'NVARCHAR(MAX)')
                 ,1,1,'')

set @query = 'SELECT EVAL_ID, AuditType, ' + @cols + ' from
        (
            select     QT.EVAL_ID,
                       QT.AuditType,
                       QT.SCORE,
                       QT.QUESTION_DESC
            into ##tmp
            from #QUES_TEMP QT
         ) x

        pivot
        (
             max(SCORE)
             for QUESTION_DESC in (' + @cols + ')
        ) p '

execute(@query);

SELECT * FROM ##tmp


 类似资料:
  • 问题内容: 我已经看过了,所以我知道如何用动态生成的字段集创建数据透视表。我现在的问题是我想将结果放入临时表中。 我知道,为了将结果集从 EXEC 语句放入临时表中,您需要预先定义临时表。对于动态生成的数据透视表,无法事先知道字段。 我想得到这种功能的唯一方法是使用动态SQL创建一个永久表。有没有更好的办法? 问题答案: 您可以这样做: 编辑:添加动态sql接受参数以openquery

  • 问题内容: 我已经尽力理解如何在SQL中创建数据透视表,但是我无法对其进行管理! 我有以下几列: 拥有60万行数据。 我在下面的数据透视表中需要它们; StartHour作为列标题 作为行标题 作为数据 其中=‘1’作为过滤器。 数据透视表 我设法获得了以下代码,该方法有效,但仅给我date_1作为列标题,而不给我StartHour,或者将filter作为date_source =‘1’。 谢谢你

  • 问题内容: 我试图获得一个带有动态列的数据透视表。当user_id是一个字符串时,它可以正常工作,但是如果它是一个int,那么它似乎会失败 到目前为止,在过去的问题帮助下,我得到的是: 参见:http : //sqlfiddle.com/#!2/eab24/1 我确定这很简单,但是我想念什么呢? 谢谢 问题答案: 由于值在其中,因此您要将它们设为列名,因此必须将值包装在反引号中 该SQL将看起来像

  • 问题内容: 我找到了一个不错的脚本,该脚本可以为透视表动态按列名创建,但是我没有将分配的值重新返回到表中。这是我的出发桌。 我运行此SQL生成我想要的数据透视表中的列 这给了我以下输出 当我为数据透视表运行动态SQL时 我看到这个结果… 我尝试了几种不同的方法,但是对于这种方法为什么不起作用,我没有提出解决方案。 所需的输出将是ORDER_ID列顺序正确的位置 但这也将对我的应用程序起作用。 问题

  • 问题内容: 我有以下SQL查询,其中创建的列不按顺序,我不太确定如何解决它。 我相信它与查询的这一部分有关系: 我曾尝试弄乱本主题中发布的答案,但无法运行查询。我希望有人能提供帮助。 编辑 我只是注意到我的行是乱序的,也想按[客户ID]进行排序。 问题答案: 您可以通过在设置字符串时添加来调整动态数据透视查询中字段的顺序: 更新:首先错过了,使用时必须先使用子查询,然后再使用: 如果您不能简单地使

  • A 数据透视表介绍 B.1 什么是数据透视表? 数据透视表是一种可以快速汇总、分析大量数据表格的交互式工具。使用数据透视表可以按照数据表格的不同字段从多个角度进行透视,并建立交叉表格,用以查看数据表格不同层面的汇总信息、分析结果以及摘要数据。使用数据透视表可以深入分析数值数据,以帮助用户发现关键数据,并做出有关企业中关键数据的决策。 数据透视表是针对以下用途特别设计的:以友好的方式,查看大量的数据