在SQL Server 2008中对一些XML节点值求和

Ari*_*ian 4 xml sql sql-server xpath sql-server-2008

请考虑以下XML:

<Parent ID="p">
    <Child ID="1">10</Child > 
    <Child ID="2">20</Child > 
    <Child ID="3">0</Child > 
</Parent > 
Run Code Online (Sandbox Code Playgroud)

我想SUM内所有子值Parent节点用ID="p"。对于上面的例子我想查询回报30

我该怎么做?

muh*_*mud 6

select @xml.value('sum(/Parent[@ID = "p"]/Child)', 'float') as Sum
Run Code Online (Sandbox Code Playgroud)

采用float防止那里是没有ParentID。然后,您可以将此结果转换为int