在线播放亚洲第一字幕,大鸡巴操死我了视频网站,欧美日韩中文字,久久久999婷婷欧美一区

Rss & SiteMap

昂捷論壇 http://m.yzsenyi.com

中國(guó)零售業(yè)界精英論壇!
共1 條記錄, 每頁顯示 15 條, 頁簽: [1]
[瀏覽完整版]

標(biāo)題:自定義表單數(shù)據(jù)表格里面數(shù)據(jù)統(tǒng)計(jì)的三種方法

1樓
prcak47 發(fā)表于:2015/5/13 10:49:45

對(duì)于自定義表單的數(shù)據(jù)表格,常常要對(duì)其中的數(shù)據(jù)進(jìn)行數(shù)據(jù)統(tǒng)計(jì),

我們推薦將腳本放在保存后執(zhí)行的腳本中進(jìn)行計(jì)算

下面有三種方法可以選擇

方法1,

統(tǒng)計(jì)出其中的數(shù)據(jù)列數(shù),然后用循環(huán)語句合計(jì)數(shù)值

 


 

declare  @eform_data table
(c_data xml)

insert into  @eform_data(c_data)
values('<rows>
  <row>
    <c_tab>
      <drows>
        <drow>
          <c_num>18000</c_num>
          <c_num>1000000</c_num>
          <c_num>18000</c_num>
        </drow>
      </drows>
    </c_tab>
  </row>
</rows>')

select * from @eform_data

declare @count varchar(20)
declare @sum money
declare @tsql nvarchar(1000)
declare @xmldata xml
set @sum = 0

select @count = cast(c_data.query('count(/rows/row/c_tab/drows/drow/c_num)') as varchar(20))
 from @eform_data
 
select @count

select @xmldata = c_data.query('(/rows/row/c_tab/drows/drow/c_num)')
 from @eform_data
 
while @count <> 0
begin

 select @tsql = 'select @sum = @sum + @xmldata.value(''(/c_num)['+@count+']'',''money'')'

 EXECUTE sp_executesql @tsql,N'@xmldata xml,@sum money out',@xmldata,@sum out

 set @count = @COUNT - 1
end

select @sum


 

方法2,直接用xml做統(tǒng)計(jì)運(yùn)算

 

declare @eform_data table
(c_data xml)


insert into  @eform_data(c_data)
values('<rows>
  <row>
    <c_tab>
      <drows>
        <drow>
          <c_num>18000</c_num>
          <c_num>1000000</c_num>
          <c_num>18000</c_num>
        </drow>
      </drows>
    </c_tab>
  </row>
</rows>')


select * from @eform_data

declare @sum money


select @sum= c_data.value('sum(/rows/row/c_tab/drows/drow/c_num)','money')
from @eform_data

select @sum

 

這個(gè)方法雖然語句簡(jiǎn)潔,但是存在一個(gè)問題,就是當(dāng)數(shù)據(jù)合計(jì)超過百萬的時(shí)候,數(shù)據(jù)結(jié)果會(huì)變成科學(xué)計(jì)數(shù)法

導(dǎo)致轉(zhuǎn)換為money失敗

 

方法3

查詢出數(shù)據(jù)的xml,然后用字符串的運(yùn)算計(jì)算合集

 

declare @eform_data table
(c_data xml)

insert into  @eform_data(c_data)
values('<rows>
  <row>
    <c_tab>
      <drows>
        <drow>
          <c_num>18000</c_num>
          <c_num>1000000</c_num>
          <c_num>18000</c_num>
        </drow>
      </drows>
    </c_tab>
  </row>
</rows>')


select * from @eform_data

declare @sql varchar(1000)

select @sql = cast(c_data.query('(/rows/row/c_tab/drows/drow/c_num)') as varchar(1000))
from @eform_data


select @sql

select sum(cast(replace(c_str,'c_num>','') as money) )
from dbo.uf_split_string(@sql,'')
where c_str not in ('','/c_num>','')

 

 

 

 

 

[此貼子已經(jīng)被作者于2015/5/13 10:54:58編輯過]
共1 條記錄, 每頁顯示 15 條, 頁簽: [1]

Copyright © 2006-2010 EnjoyIT.com.cn
網(wǎng)友言論或觀點(diǎn)與昂捷公司無關(guān)!涉及版權(quán)/著作權(quán)問題請(qǐng)與發(fā)帖者直接聯(lián)系
Powered By Dvbbs Version 8.2.0
Processed in 0.15918 s, 2 queries.
乌拉特前旗| 广安市| 巴林左旗| 府谷县| 南阳市| 黔西县| 上杭县| 肃宁县| 南充市| 长岭县| 十堰市| 桐梓县| 蓬安县| 巴塘县| 西丰县| 和林格尔县| 云南省| 普宁市| 汝州市| 芜湖县| 蓬莱市| 静宁县| 西宁市| 吐鲁番市| 清涧县| 施秉县| 石门县| 娄底市| 满洲里市| 塔城市| 临桂县| 富阳市| 石柱| 弥勒县| 乌拉特中旗| 宝应县| 华池县| 五常市| 安丘市| 威海市| 邛崃市|