GROUP BY 子句中不允许使用 Sql Server XML 方法

2023-12-22

我只是发出一个组,在其中指定 xml 数据,然后出现错误GROUP BY 子句中不允许使用 XML 方法。

这是我的sql

SELECT HourSheetID,(MAX(RowID)+1) as "RowID",
XMLData.value('(Log/EntryDate)[1]','datetime') as EntryDate,
XMLData.value('(Log/SpecialistID)[1]','int') as SpecialistID,
XMLData.value('(Log/HoursData)[1]','decimal(18,2)') as HoursData,
XMLData.value('(Log/UpdatedBy)[1]','varchar(max)') as UpdatedBy,
XMLData.value('(Log/Options)[1]','varchar(max)') as Options,
logdate
FROM  dbo.EditedHourSheetLog
GROUP BY HourSheetID,
XMLData.value('(Log/EntryDate)[1]','datetime'),
XMLData.value('(Log/SpecialistID)[1]','int'),
XMLData.value('(Log/HoursData)[1]','decimal(18,2)'),
XMLData.value('(Log/UpdatedBy)[1]','varchar(max)'),
XMLData.value('(Log/Options)[1]','varchar(max)'),
logdate

如果我无法在 group by 子句中指定 xml 数据,那么还有什么其他选项可用......请指导。谢谢

这样我就完成了我的任务

ALTER PROC sp_HourSheetLog
(
    @StartDate VARCHAR(8),
    @EndDate VARCHAR(8)
)
AS

SELECT B.ID
    ,A.RowID
    ,B.EntryDate
    ,B.Name
    ,B.HoursData
    ,B.UpdatedBy
    ,Options=(CASE B.Options
    WHEN 'rdLeave' THEN 'Leave'
    WHEN 'rdsick' THEN 'Sick'
    WHEN 'rdSalvage' THEN 'Salvage'
    WHEN 'rdCSRDuty' THEN 'CSR Duty'
    WHEN 'rdShippingSales' THEN 'Shipping and Sales'
    WHEN 'rdEOL' THEN 'EOL'
    WHEN 'rdTraining' THEN 'Training'
    WHEN 'rdOther' THEN 'Other'
    END)
    ,B.ModDate
        FROM (
        (
            SELECT HourSheetID,(MAX(RowID)+1) as "RowID"
            FROM EditedHourSheetLog l,EditedHourSheet h
            GROUP BY HourSheetID
        ) A
        JOIN
        (
            SELECT h.ID
                ,s.Name
                ,h.EntryDate
                ,h.HoursData
                ,h.Options 
                ,h.UpdatedBy
                ,h.ModDate from EditedHourSheet h
                LEFT JOIN Specialists s
                ON h.SpecialistID=s.SpecialistID
        ) B
    ON A.HourSheetID=B.ID
    )
    WHERE Convert(Varchar,ModDate,112)>=@StartDate AND
    Convert(Varchar,ModDate,112)<=@EndDate


UNION 
(
    Select HourSheetID as ID,RowID,
    XMLData.value('(Log/EntryDate)[1]','datetime') as EntryDate,
    --XMLData.value('(Log/SpecialistID)[1]','int') as SpecialistID,
    s.Name,
    XMLData.value('(Log/HoursData)[1]','decimal(18,2)') as HoursData,
    CAST(XMLData.value('(Log/UpdatedBy)[1]','varchar(max)') AS VARCHAR(MAX)) UpdatedBy,
    Options=(CASE XMLData.value('(Log/Options)[1]','varchar(max)')
    WHEN 'rdLeave' THEN 'Leave'
    WHEN 'rdsick' THEN 'Sick'
    WHEN 'rdSalvage' THEN 'Salvage'
    WHEN 'rdCSRDuty' THEN 'CSR Duty'
    WHEN 'rdShippingSales' THEN 'Shipping and Sales'
    WHEN 'rdEOL' THEN 'EOL'
    WHEN 'rdTraining' THEN 'Training'
    WHEN 'rdOther' THEN 'Other'
    END),
    LogDate as ModDate
    FROM EditedHourSheetLog h
    LEFT JOIN Specialists s
    ON h.XMLData.value('(Log/SpecialistID)[1]','int')=s.SpecialistID
    WHERE Convert(Varchar,LogDate,112)>=@StartDate AND
    Convert(Varchar,LogDate,112)<=@EndDate

)
ORDER BY ID,RowID DESC

--sp_HourSheetLog '20140101','20140326'

您可以使用派生表并在主查询中进行分组。

SELECT T.HourSheetID,
       MAX(T.RowID)+1 as RowID,
       T.EntryDate,
       T.SpecialistID,
       T.HoursData,
       T.UpdatedBy,
       T.Options,
       T.logdate
FROM (
     SELECT HourSheetID,
            RowID,
            XMLData.value('(Log/EntryDate)[1]','datetime') as EntryDate,
            XMLData.value('(Log/SpecialistID)[1]','int') as SpecialistID,
            XMLData.value('(Log/HoursData)[1]','decimal(18,2)') as HoursData,
            XMLData.value('(Log/UpdatedBy)[1]','varchar(max)') as UpdatedBy,
            XMLData.value('(Log/Options)[1]','varchar(max)') as Options,
            logdate
     FROM  dbo.EditedHourSheetLog
     ) AS T
GROUP BY T.HourSheetID,
         T.EntryDate,
         T.SpecialistID,
         T.HoursData,
         T.UpdatedBy,
         T.Options,
         T.logdate
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

GROUP BY 子句中不允许使用 Sql Server XML 方法 的相关文章

随机推荐

  • SwiftUI WidgetKit:如何将视图锚定到顶部

    我正在尝试使用 SwiftUI 和 WidgetKit 布局 tableView 并希望获得与 Apple 的 Notes 小部件类似的结果 我当前的实现成功地在 systemLarge小部件 但不在 systemMedium小部件 我想将
  • git hooks 在提交消息中强制执行 JIRA 票号

    我试图强制用户将 JIRA 票证添加到 git commit 中 我使用了预接收钩子 但它仅在推送后才起作用 我希望它在提交后工作 因此如果消息格式不正确 提交将失败 用户将可以选择编辑提交 这是我的代码示例 usr bin env bas
  • 什么是冒烟测试? [复制]

    这个问题在这里已经有答案了 可能的重复 什么是烟雾测试 它对我有什么作用 https stackoverflow com questions 745192 what is a smoke testing and what will it d
  • 获取 oci_execute() 错误的错误消息 (PHP)

    如果在 Oracle 10g 中查询失败 我希望获得特定的错误消息 对于 MySQL PHP 具有 mysql error 函数 该函数可以返回有关查询失败原因的详细信息 我检查了 php net 手册中的 oci execute 函数 但
  • 在特定情况下,LMDB 是否也可以并发写入?

    MDB NOLOCK 如所述mdb env open http www lmdb tech doc group mdb html ga32a193c6bf4d7d5c5d579e71f22e9340 apidoc MDB NOLOCK 不执
  • 如何避免实现 const 和非常量迭代器的代码重复?

    我正在实现一个具有类似 STL 接口的自定义容器 我必须提供一个常规迭代器和一个常量迭代器 这两个版本的迭代器的大部分代码是相同的 我怎样才能避免这种重复 例如我的容器类是Foo 我正在实施FooIterator and FooConstI
  • 在 NSTableView 的同一单元格中显示图标和文本

    我想在表视图的单个单元格中的文本项旁边显示一个图标 我想要实现的一个示例是 系统偏好设置 gt 用户帐户 gt 登录项 中的应用程序列表 有什么好办法呢 这里有一个很好的例子如何做到这一点 http www cocoadev com ind
  • Data.table 与 cor.test 按组

    当我使用data table要使用 cor test 函数计算每个组的相关性 它适用于默认方法 即 pearson 但不适用于 spearman 我收到一个data table error library data table dd lt
  • C++ VS 错误:提供 std::experimental::filesystem 的 标头已被 Microsoft 弃用并将被删除

    我编码了C on 视觉工作室 Windows 10 并收到此错误 error The
  • Spring事务上下文不持久保存数据

    我知道我的问题是一个常见问题 但是我在这里检查了很多问题 检查了Spring文档 我真的不知道我做错了什么 我的问题 我有一个使用 JPA 的 Spring WebFlow 项目 实现 OpenJPA MySQL 数据库 我使用 Sprin
  • Sails JS 和 Mongodb 唯一属性被忽略

    在 SailsJS 中使用 Mongo 时 我似乎无法获得唯一属性来实际检查 验证唯一值 我很容易就得到了相同的用户名 有什么想法吗 我检查了关于此的另一篇文章 但这与使用磁盘 内存数据库有关 航行 0 10 x 电子邮件受保护 cdn c
  • 如何在 twitter bootstrap css 的网格

    我正在尝试使用 Twitter 的 bootstrap CSS 框架 到目前为止只有网格布局 现在我只想对齐每个网格单元的内容 div 至底部 显然我根本不是 CSS 爱好者 这是 HTML div class container div
  • numpy as_strided 的反函数

    我有一个 4 张量x 6张量y计算如下 x np random randn 64 28 28 1 strided shape 64 26 26 3 3 1 y numpy lib stride tricks as strided x str
  • 如何对 IList 执行二分查找?

    简单的问题 给定一个IList
  • 如何在 django 模板中为标签创建动态 ID

    背景 我有一个动态表 就像我直到运行时才知道它的大小 元素 我试图用 JavaScript 函数填充文本区域 为此 我计划将文本区域的 id 以及我想要填充到 javascript 函数中的值一起传递 问题是我无法为每个文本输入字段创建动态
  • Clojure 中的 OAuth1

    我正在尝试使用 Clojure 与 API Context IO 集成 Context IO 使用 OAuth 1 它需要告知用户密钥和用户秘密凭证才能集成 我过去曾使用请求库 https github com request reques
  • 将 Big GeoJSON 转换为 topoJSON

    I have GeoJSON 文件 https github com jgoodall us maps blob master geojson zcta5 json大约有 1 4GB 并且由于文件大小 命令行工具无法工作 我使用 topoj
  • Jquery Datatable sum 条件页脚回调未显示正确的结果

    我正在尝试计算页脚回调中的列总和 但是 它没有给我正确的结果 USE 的总和应该是 12 但它显示的是 24 RAHUL 也显示错误的结果 如果该值重复 例如 6 是 USE 的两倍 并且 6 也出现在 Card 和 Other 中 在这种
  • 如何有效调试缩小后的JS文件?

    我调试时遇到问题缩小版 JS在生产服务器上 虽然你在测试时无法发现机器上的一些错误dev prod服务器 有机会将用户的一些前端错误和异常发送到特殊日志 当 JS 文件被缩小时 调试这段代码就变成了地狱 执行此类工作的最佳实践是什么 Bit
  • GROUP BY 子句中不允许使用 Sql Server XML 方法

    我只是发出一个组 在其中指定 xml 数据 然后出现错误GROUP BY 子句中不允许使用 XML 方法 这是我的sql SELECT HourSheetID MAX RowID 1 as RowID XMLData value Log E