SQL server对表的XML解析
我不熟悉SQLXML操作。我在SQL和XML解析方面有问题 我有一个名为SQL server对表的XML解析,sql,sql-server,xml,Sql,Sql Server,Xml,我不熟悉SQLXML操作。我在SQL和XML解析方面有问题 我有一个名为Task的表。它有3列: 名字 任务 日期 任务以xml格式以小时为单位保存,格式如下: <TASK> <A>1</A> <B>4</B> <C>0</C> </TASK> 我不熟悉XML,但我无法解决这个问题。使用以下方法提取XML非常简单: 请以文本形式发布您的问题-许多公司用户被禁止访问网站,
Task
的表。它有3列:
- 名字
- 任务
- 日期
任务
以xml格式以小时为单位保存,格式如下:
<TASK>
<A>1</A>
<B>4</B>
<C>0</C>
</TASK>
我不熟悉XML,但我无法解决这个问题。使用以下方法提取XML非常简单:
请以文本形式发布您的问题-许多公司用户被禁止访问网站,如
imgur
,因此回答问题就成了猜测工作。任务列是实际的XML数据类型还是某种字符变体?Prince Joseph T eh?我们就是你的爪牙吗?:-)坦纳:这只是我的名字:)。。请帮助我解决这个问题,这是否也会汇总每个员工的值?基本上,名称是员工id,它可以出现多次,因此需要汇总每个员工id的任务xml。。。但是是的,OP不是greatThank你这么多StuartLC。。这很有帮助。。我们无法预测任务编号。。它可能会改变。。在那种情况下我们能做什么。。?在这种情况下,我们无法指定每个任务。@StuartLC对您来说太晚了,我明白了now@StuartLC以前从未见过这样做,像这样混合sql和XML,但很好的答案,将在将来记住它
Name | Task | Date
========================================================================
Employee2219 | <TASK><A>1</A><B>4</B><C>0</C></ TASK > | 2014-01-28
Employee2219 | <TASK><A>3</A><B>2</B><C>1</C></ TASK > | 2014-01-29
....
Name | A | B | C | D
===============================
Employee2219 | 4 | 6 | 1 | 0
....
SELECT
Name,
SUM(TaskA) AS ATotal,
SUM(TaskB) AS BTotal,
SUM(TaskC) AS CTotal,
SUM(TaskD) AS DTotal
FROM
(
SELECT
t.NAME,
t.Date,
Nodes.node.value('(A)[1]', 'int') AS TaskA,
Nodes.node.value('(B)[1]', 'int') AS TaskB,
Nodes.node.value('(C)[1]', 'int') AS TaskC,
Nodes.node.value('(D)[1]', 'int') AS TaskD
FROM
TASK t
cross apply t.Task.nodes('/TASK') as Nodes(node)
) x
WHERE
[Date] BETWEEN '2014-01-01' AND '2014-01-07' -- Your week range
GROUP BY
Name;