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


昂捷論壇≡FAQ≡□-通用類 → 自定義表單數(shù)據(jù)表格里面數(shù)據(jù)統(tǒng)計的三種方法


  共有26339人關注過本帖樹形打印

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

帥哥喲,離線,有人找我嗎?
prcak47
  1樓 個性首頁 | 信息 | 搜索 | 郵箱 | 主頁 | UC


加好友 發(fā)短信
等級:超級管理員 帖子:145 積分:2648 威望:0 精華:0 注冊:2005/12/10 16:23:42
自定義表單數(shù)據(jù)表格里面數(shù)據(jù)統(tǒng)計的三種方法  發(fā)帖心情 Post By:2015/5/13 10:49:45

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

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

下面有三種方法可以選擇

方法1,

統(tǒng)計出其中的數(shù)據(jù)列數(shù),然后用循環(huán)語句合計數(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)計運算

 

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

 

這個方法雖然語句簡潔,但是存在一個問題,就是當數(shù)據(jù)合計超過百萬的時候,數(shù)據(jù)結果會變成科學計數(shù)法

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

 

方法3

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

 

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編輯過]

使用IE9無法添加附件的解決方法 支持(0中立(0反對(0回到頂部
马公市| 郑州市| 宁武县| 宽甸| 西林县| 扎兰屯市| 迁西县| 延安市| 灵石县| 马尔康县| 灵寿县| 获嘉县| 湾仔区| 白城市| 阿巴嘎旗| 霸州市| 宁河县| 镇赉县| 沅江市| 浦城县| 新建县| 忻城县| 灌云县| 读书| 刚察县| 苗栗县| 云梦县| 卓资县| 留坝县| 霍邱县| 临夏县| 灵宝市| 涡阳县| 南和县| 驻马店市| 木里| 呼伦贝尔市| 太原市| 太湖县| 加查县| 宁武县|