在 SQL Server 中使用透视(错误)- 列名无效

2024-06-23

SELECT 
    [Reg. number], [Surname], 
    [SESREFDATETIME1], [ATTENDANCE1], 
    [SESREFDATETIME2], [ATTENDANCE2],
    [SESREFDATETIME3], [ATTENDANCE3],
    [SESREFDATETIME4], [ATTENDANCE4] 
FROM
    (SELECT
        [Reg. number], [Surname], 
        col + CAST(rn AS varchar(10)) col, 
        value
     FROM
        (SELECT
            [Reg. number], Surname,
            row_number() over(partition by [Reg. number] order by SESREFDATETIME) rn
         FROM #Temp) t
     CROSS APPLY
         (SELECT 'SESREFDATETIME', SESREFDATETIME 
          UNION ALL 
          SELECT 'ATTENDANCE', ATTENDANCE) c (col, value)
    ) x
PIVOT
    (max(value)
     for col in ([SESREFDATETIME1], [ATTENDANCE1], [SESREFDATETIME2],[ATTENDANCE2], [SESREFDATETIME3], [ATTENDANCE3], [SESREFDATETIME4],[ATTENDANCE4])
    ) p;

在我的程序中我创建了一个#temp临时表,我尝试在多列中显示多行。我使用数据透视表的原因是因为此代码是动态创建的并且行数未知。我正在运行代码,但它给出了错误。我快要疯了。找不到错误在哪里。它表明在交叉应用中存在无效的列名。我认为还有另一个错误。它显示错误的一面。 用于测试的表格式如下

Create table #Temp
(
    [Reg. number] int, 
    [Surname] Varchar(50), 
    SESREFDATETIME Varchar(80), 
    ATTENDANCE Varchar(10)
)

示例数据格式是

2005162 Abasov  04/09/2014 09:00 - 10:00    Y
2005458 Baxşiyev    15/04/2015 01:00 - 04:00    NULL
2005458 Baxşiyev    16/09/2014 14:00 - 17:00    Y
2005538 Abbasbəyli  13/10/2014 12:00 - 15:00    Y

您的“交叉应用 x”看不到 SESREFDATETIME 和 ATTENDANCE,如果您在“子选择 t”中包含这些列,则交叉应用部分可以获得这些值

尝试这个:

SELECT 
    [Reg. number], [Surname], 
    [SESREFDATETIME1], [ATTENDANCE1], 
    [SESREFDATETIME2], [ATTENDANCE2],
    [SESREFDATETIME3], [ATTENDANCE3],
    [SESREFDATETIME4], [ATTENDANCE4] 
FROM
    (SELECT
        [Reg. number], [Surname], 
        col + CAST(rn AS varchar(10)) col, 
        value
     FROM
        (SELECT
            [Reg. number], Surname,
            row_number() over(partition by [Reg. number] order by SESREFDATETIME) rn,
            SESREFDATETIME,
            ATTENDANCE
         FROM #Temp) t
     CROSS APPLY
         (SELECT 'SESREFDATETIME', SESREFDATETIME 
          UNION ALL 
          SELECT 'ATTENDANCE', ATTENDANCE) c (col, value)
    ) x
PIVOT
    (max(value)
     for col in ([SESREFDATETIME1], [ATTENDANCE1], [SESREFDATETIME2],[ATTENDANCE2], [SESREFDATETIME3], [ATTENDANCE3], [SESREFDATETIME4],[ATTENDANCE4])
    ) p;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 SQL Server 中使用透视(错误)- 列名无效 的相关文章

  • 如何在 SQL Server 会话中设置自动提交?

    如何在 SQL Server 会话中设置自动提交 您可以通过将implicit transactions设置为OFF来打开自动提交 SET IMPLICIT TRANSACTIONS OFF 当设置为ON时 返回隐式事务模式 在隐式事务模式
  • 如何在游标中使用嵌套表

    CREATE PROCEDURE p cur OUT a cur IS type rec is record a varchar2 2 b number c number type tab is table of rec tab1 tab
  • 为什么实体框架 6 在插入后不只选择scope_identity()?

    当您使用 EF 6 1 保存实体时 将生成并执行以下 SQL 代码 exec sp executesql N INSERT dbo Customers Name FirstName VALUES 0 1 SELECT CustomerId
  • 简单的t-sql而不是触发器

    任何人都可以帮助解决简单的 t sql 脚本与板载触发器的问题吗 我使用非常简单的触发器将数据从一个表复制到另一个表 这些表之间没有关系 当我尝试在触发器创建后 从同一脚本 直接第一次插入数据时 我得到了所需的结果 但所有接下来的尝试都会失
  • 将包含数字的列的类型从 varchar 更改为 int

    数据库中有两列 当前类型为 varchar 16 事实是 它包含数字并且永远包含数字 因此我们想将其类型更改为整数 但问题是它当然已经包含数据了 有什么方法可以将该列的类型从 varchar 更改为 int 并且不会丢失其中已有的所有数字
  • t-sql计算文本列中的唯一单词

    我有一列包含图像标题 我想做的是找到该栏中出现的最流行的单词 有没有办法用 t sql 来做到这一点 我认为你可以做这样的事情 我认为这不是最优化的 但您可以对其进行改进 创建一个表变量 t来存储单词 创建一个游标 循环浏览字幕表中的每一行
  • 将 XML 文件导入 SQL Server(不使用 BULK)

    我正在尝试将数据从 XML 文件导入到数据库中 我使用了一个测试脚本BULK INSERT 但是当我在实时数据库上进行测试时 权限BULK被禁用 尝试 1 BULK INSERT XMLTable FROM C Radu test xml
  • Laravel 数据透视表观察者

    我有一个具有更新方法的观察者 观察者ServiceProvider php public function boot Relation observe RelationObserver class 关系观察者 php public func
  • 加载SSIS包时出错

    我正在尝试在 SQL Server 2008R2 上执行 SSIS 包 该脚本检索远程服务器上的数据并将其复制到本地数据库 该作业每小时安排一次 SQL 代理使用代理向远程计算机验证自身身份 身份验证似乎没问题 但在加载 SSIS 包期间出
  • 根据多列删除重复项

    我使用以下内容列出了重复项 select s MessageId t from Message s join select ToUserId FromUserId count as qty from Message group by ToU
  • SQL Server 使用递归 CTE 获取路径

    我想以 1 1 1 2 等格式获取每个部门的路径 这是我的部门表 id name parentId 1 Dep 1 0 2 Dep 2 1 3 Dep 3 0 4 Dep 4 1 5 Dep 5 4 6 Dep 6 2 这是我的递归 CTE
  • 如何获取ms sql中float列中小数点后的位数?

    我必须计算 MS Sql Server 托管的数据库中小数点后的数字 2005 或 2008 并不重要 以纠正用户犯的一些错误 我在 Oracle 数据库上也遇到同样的问题 但事情没那么复杂 Oracle 上的底线是 select leng
  • 从 JDBC MSSQL 获取返回值

    我使用 Microsoft SQL Server JDBC Driver 2 0 通过 Java 连接到 SQL Server 2005 如何从存储过程中获取返回值 我正在做类似的事情 Connection connection dataS
  • End using 是否关闭打开的 SQL 连接

    如果我将 SQLConnection 包装在 using 中 我应该关闭它还是最终 using 处理它 using cn as new system data sqlclient sqlconnection cn open do a bun
  • sp_MSforeachtable 在每个表上执行过程

    我想打印一些动态查询来对数据库中的所有表执行过程 这是我到目前为止所写的 EXEC SP MSFOREACHTABLE IF EXISTS SELECT FROM INFORMATION SCHEMA COLUMNS WHERE COLUM
  • 如何处理 FOR XML PATH/AUTO 中的空白值 - SQL Server?

    有没有人对这种 SQL Server 行为有任何见解或遇到过 当空白值转换为数据类型时 char 或具有 的列char 作为数据类型 处理使用For XML PATH 它返回 XML 结果 20 空格的特殊字符编码 当相同的空白值转换为va
  • 如何在SQL Server数据库的所有表的所有列中搜索特定字符串?

    我们想要在拥有大约 120 个表的所有数据库中搜索一个字符串 即 Hello World 我们考虑过像 mysql dump 一样进行转储 但它以奇怪的 bak 格式出现 应在每个表的每一列中进行搜索 任何类型的脚本都可以做到这一点 或者这
  • 将unix纪元时间戳转换为TSQL日期时间

    我只找到了一个类似的问题 https stackoverflow com questions 4794162 convert unix epoch timestamp to mysql timestamp in php但对于 MySQL 来
  • 部署 Visual Studio 2010 数据库项目

    我有一个 Visual Studio 2010 数据库项目 我想从中生成一个脚本 这只是将该数据库放到另一台机器上 问题是我找不到 对此的解决方案 当我开始这个项目时 我从开发电脑上的数据库导入了 shema 生成了架构对象 所有表和脚本都
  • 邮政编码 10 位数字字符使用的约束检查

    我有一张桌子 上面有Char 10 列类型 命名postal Code我需要对所有值进行约束检查 就像 10 位数字一样1234567890没有别的 我使用以下内容 CONSTRAINT CH PCDigit CHECK PostalCod

随机推荐

  • “你可能认识的人”sql查询

    我正在开发 你可能认识的人 功能 我有两张桌子 USERS id email name etc 友谊 user id朋友ID 对于每段友谊 我都会做两条记录 假设用户 7 和 9 成为朋友 我会在友谊表中创建一条记录 其中 user id
  • OpenCV/FFMpeg 图像捕获问题

    我正在尝试从网络摄像机实时捕获图像 该流在 VLC 中运行得很好 但 OpenCV 的cvQueryFrame 似乎使传入的图像变得混乱和损坏 以至于无法识别 同样 从文件捕获可以正常工作 但实时流则不行 为了以防万一 我使用了 rtsp
  • 如何从浏览器接收“共享 URL”?

    我读过这个 如何在 Android 中处理浏览器的 共享页面 意图 https stackoverflow com questions 2886556 how do i handle the browsers share page inte
  • ASP.net MVC 核心 RedirectToPage 错误 - 指定根相对路径错误

    我想从正常的控制器操作重定向到剃刀页面 如下所示 return RedirectToPage Edit new id blogId I have already a razor page named Edit which is workin
  • Physijs加载模型三.js碰撞不起作用

    当我使用 JSONLoader 加载模型 地图 时 出现冲突问题 如果我使用 BoxMesh 加载 它可以工作 但几何碰撞就像一个立方体 而我的模型不是立方体 模型的中间是空的 我将另一个对象 立方体 放在地图的顶部 该对象停在该地图的顶部
  • R和spark:比较不同地理点之间的距离

    我正在处理纽约市出租车数据集 该数据集的列包括日期时间 接送纬度 经度 下车纬度 经度等 现在我想对纬度 经度进行反向地理编码以找到行政区 社区 我有两个数据框 1 第一个数据框包含我想要用最近的纽约社区名称进行分类的所有点 2 第二个数据
  • Try/Catch 异常从导致异常的行继续

    当抛出异常时 如何捕获它 然后从引发错误的行开始继续执行 编辑 我们的程序与 Indesign Server 通信 Indesign Server 总是崩溃并抛出随机的 COM 相关错误 这些错误与服务器本身的错误有关 Indesign S
  • Sklearn:使用 ColumnTransformer 的文本和数字特征有值错误

    我正在尝试使用 SKLearn 0 20 2 来制作管道 同时使用新的 ColumnTransformer 功能 我的问题是 当我运行分类器时 clf fit x train y train 我不断收到错误 ValueError all t
  • Android布局,视图高度等于屏幕尺寸

    在Android中如何使视图具有与其屏幕尺寸相同的高度 是否可以仅使用xml来实现这一点 或者如果必须使用脚本 请告诉我如何 Thanks 抱歉没说清楚 谢谢您的回复 但我认为 match parent 和 fill parent 属性不可
  • Java - 反序列化InvalidClassException(没有有效的构造函数)

    我正在尝试序列化一个对象 然后在将其数据发送到客户端程序后对其进行反序列化 下面是对象继承如何工作的示例 我正在序列化和反序列化的对象是人 生命 gt 动物 gt NPC gt 人 gt 儿童 Living Animal 和 NPC 不实现
  • Subversion:仅在一个客户端上忽略对本地文件的修改

    是否可以仅在一个客户端本地忽略对 subversion 中文件的更改 而不将忽略传播到整个存储库 我正在处理的具体问题是我已经签出了一个项目并修改了一堆文件 包括 Makefile 它已经是存储库的一部分 现在我正在处理的环境与小组中的其他
  • 为什么oracle中的select语句不能执行存储过程?有什么强有力的理由吗?

    create or replace procedure pr is v date date begin select sysdate into v date from dual DBMS output put line v date end
  • 如何暂停 Laravel 队列

    我有一个将请求发送到远程服务的队列 有时此服务会进行维护 我希望所有队列任务在遇到这种情况时暂停并在 10 分钟内重试 我该如何实施 您可以使用Queue looping 用于暂停整个队列或连接 而不仅仅是单个作业类 的事件侦听器 与其他方
  • 第一次制作动画时导航栏闪烁

    我已经创建了自己的标签栏控制器 但我遇到了动画问题 当我在选项卡单击上对视图进行动画处理时 导航栏会完全变成黑色 应该是红色 然后在动画完成后闪烁回红色 我的设置和代码如下 Swift 或 Objective C 中的答案都很有帮助 因为翻
  • viewStateEncryptionMode="Always" 不加密

    由于一些安全问题 我需要启用视图状态加密 我已关闭 viewstate 和 viewstateMAC 但我需要加密 控制状态 http msdn microsoft com en us site ms178199 VIEWSTATE 表单参
  • 权利不匹配:配置文件问题

    使用 Xcode 我尝试将我的存档上传到 App Store 我得到 错误 ITMS 90163 代码签名权利无效 应用程序包签名中的权利与配置文件中包含的权利不匹配 该包包含的密钥未包含在配置文件 aps environment 中 有效
  • Exiftool 使用 Python 导出 JSON

    我正在尝试通过 Python 使用 Exiftool 提取一些元数据并将它们存储在 JSON 文件中 如果我在 CMD 中运行以下命令 根据文档 它可以正常工作 生成一个 temp json 文件 exiftool filename cre
  • 一个节点如何知道另一个节点是种子?

    当一个对等点连接到另一个拥有所有片段的对等点时 连接的对等点如何知道它所连接的实际上是一个种子 并且拥有所有片段 他们之间有消息传递吗 在像 uTorrent 这样的客户端中 对等点似乎也知道它所连接的每个对等点的下载进度 它怎么知道这一切
  • 在构建需要编译代码的模块时将自定义 CMake 标志传递给 pip

    我目前正在安装一个需要使用 pip 编译代码 dlib 的模块 Pip 运行 setup py 它运行 cmake 并编译代码 在指定要安装的模块时 有没有办法将自定义 cmake 标志传递给 pip 或者是我手动运行 cmake 的唯一选
  • 在 SQL Server 中使用透视(错误)- 列名无效

    SELECT Reg number Surname SESREFDATETIME1 ATTENDANCE1 SESREFDATETIME2 ATTENDANCE2 SESREFDATETIME3 ATTENDANCE3 SESREFDATE