国产亚洲精品a在线看。,骚货想不想被艹,国产麻豆剧传媒兔子先生,好大好爽好想要被操视频

以文本方式查看主題

-  昂捷論壇  (http://www.26035.net/bbs/index.asp)
--  □-通用類  (http://www.26035.net/bbs/list.asp?boardid=27)
----  自定義表單數(shù)據(jù)表格里面數(shù)據(jù)統(tǒng)計(jì)的三種方法  (http://www.26035.net/bbs/dispbbs.asp?boardid=27&id=9298)

--  作者:prcak47
--  發(fā)布時(shí)間:2015/5/13 10:49:45
--  自定義表單數(shù)據(jù)表格里面數(shù)據(jù)統(tǒng)計(jì)的三種方法

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

丹巴县| 揭西县| 盘锦市| 岑巩县| 德保县| 广东省| 凌云县| 溆浦县| 康保县| 宿迁市| 延津县| 庆阳市| 南投市| 读书| 桐庐县| 肥西县| 莆田市| 花垣县| 松江区| 辽阳市| 探索| 铜川市| 年辖:市辖区| 民权县| 邹平县| 永嘉县| 视频| 且末县| 云龙县| 吉林省| 酒泉市| 德保县| 龙井市| 鹤庆县| 万安县| 兴义市| 白银市| 瓦房店市| 临清市| 黑水县| 若尔盖县|