我整天都在苦苦挣扎,仍然没有想要的输出。我需要一个标题中的查询。
<aa>
<bb>
<cc>
<typeid>2</typeid>
<dd>
<amount>10</amount>
</dd>
</cc>
<cc>
<typeid>2</typeid>
<dd>
<amount>20</amount>
</dd>
</cc>
</bb>
</aa>
所以我的欲望输出是30,但它必须基于值类型id,所以伪代码将是 从XML中选择sum(节点到数量),其中(typeid节点)= 2
我试过了:
SELECT t1.c1.value('sum(Amount)', 'float')
FROM @xmlCase.nodes('//aa/bb/cc') as t(c)
cross apply t.c.nodes('dd') as t1(c1)
WHERE t.c.value('typeId[1]', 'int') = 2
但在这种情况下,我收到了两个值:10和20,但我需要这些值的总和。 谢谢。
答案 0 :(得分:1)
一种可能的方式:
searchText.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
// TODO Auto-generated method stub
ClaimList.this.lviewAdapter.getFilter().filter(searchText.getText().toString());
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// TODO Auto-generated method stub
}
@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
}
});
基本上,查询组会在declare @xmlCase XML = '<aa>
<bb>
<cc>
<typeid>2</typeid>
<dd>
<amount>10</amount>
</dd>
</cc>
<cc>
<typeid>2</typeid>
<dd>
<amount>20</amount>
</dd>
</cc>
</bb>
</aa>'
SELECT x.value('sum(cc[typeid=2]/dd/amount)','float') as 'total'
FROM @xmlCase.nodes('//bb') bb(x)
元素级别生成,并选择<bb>
元素的总和,其中对应的<amount>
元素等于<typeid>
。
输出
<强> SQL Fiddle 强>