我有一个保存关于我的游戏信息的XML列。以下是一些信息样例。SQL2008中XML持续时间元素的总和
<game xmlns="http://my.name.space" >
<move>
<player>PlayerA</player>
<start movetype="Move">EE5</start>
<end movetype="Move">DF6</end>
<movetime>PT1S</movetime>
</move>
<move>
<player>PlayerB</player>
<start movetype="Move">CG7</start>
<end movetype="Move">DE6</end>
<movetime>PT3S</movetime>
</move>
<move>
<player>PlayerA</player>
<start movetype="Move">FD3</start>
<end movetype="Move">EG8</end>
<movetime>PT4S</movetime>
</move>
</game>
我想设计一个XML查询来取我的movetime元素的总和。基本上我需要每个球员移动时间的总和。因此,使用上面的示例,PlayerA的总移动时间为5秒,而PlayerB的总移动时间为3秒。
这里的,我一直在目前一直使用
SELECT GameHistory.query('declare default element namespace "http://my.name.space"; data(/game/move/movetime)') AS Value FROM GamesWHERE Id=560
我是一个新手,以XSLT/XPATH功能的XML查询:P
UPDATE
的movetime元素目前包含完整的持续时间;所以如果玩家采取1:1:23进行移动,那么它将保存为PT1H1M23S
尽管如果它更容易,我确实有能力改变它,以便它只存储总秒数。
有趣的问题!请澄清''可以包含完整的“持续时间”语法,还是仅包含秒(这会更简单)。 –
Tomalak
2010-03-24 20:28:18
对不起,我已经更新了这个问题来澄清。 – Matt 2010-03-24 21:08:04