成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

sql函數(shù)遍歷BOM表的方法

數(shù)據(jù)庫 SQL Server
SQL函數(shù)可實現(xiàn)很多功能,下面為您介紹其中SQL函數(shù)遍歷BOM表的方法,供您參考,希望對您學SQL函數(shù)的使用能夠所有幫助。

SQL函數(shù)可以實現(xiàn)諸多的功能,下面就將為您介紹SQL函數(shù)遍歷BOM表的方法,供您參考,希望對您學SQL函數(shù)的使用能夠所有幫助。

表結構如下:
ptype subptype amount
a        a.1         20
a        a.2       15
a        a.3       10
a.    1 a.1.1    20
a.1   a.1.2     15
a.1    a.1.3   30
a.2    a.2.1   10
a.2    a.2.2    20
a.1.1 a.1.1.1 45
a.1.1 a.1.1.2 15
a.2.1 a.2.1.1 20
a.2.2 a.2.2.1 13

create table matgroup(parentgroup varchar(50),childgroup varchar(50), mount float)

insert into matgroup
select 'a',        'a.1',         20
union select 'a',        'a.2',       15
union select 'a',        'a.3',       10
union select 'a.1', 'a.1.1'   , 20
union select 'a.1',   'a.1.2',     15
union select 'a.1',    'a.1.3',   30
union select 'a.2',    'a.2.1',   10
union select 'a.2',    'a.2.2',    20
union select 'a.1.1', 'a.1.1.1', 45
union select 'a.1.1', 'a.1.1.2', 15
union select 'a.2.1' ,'a.2.1.1', 20
union select 'a.2.2', 'a.2.2.1', 13#p#

函數(shù)如下:
create FUNCTION fn_aaa (@matgroup varchar(50),@mount int )
RETURNS @retPLExpand TABLE (parentgroup varchar(50),childgroup varchar(50), mount float)

AS
BEGIN
   DECLARE @RowsAdded int
declare @PLExpand Table (parentgroup varchar(50),childgroup varchar(50), mount float,processed tinyint default(0))

INSERT @PLExpand
    SELECT b.parentgroup,b.childgroup, @mount*b.mount, 0
    FROM matgroup b
    WHERE b.parentgroup=@matgroup
   SET @RowsAdded = @@rowcount

   -- While new employees were added in the previous iteration

   WHILE @RowsAdded > 0

   BEGIN
      /*Mark all employee records whose direct reports are going to be
   found in this iteration with processed=1.*/
      UPDATE @PLExpand
      SET processed = 1
      WHERE processed = 0

      -- Insert employees who report to employees marked 1.
      INSERT @PLExpand
      SELECT a.parentgroup,a.childgroup,a.mount*b.mount , 0
      FROM matgroup a inner join @PLExpand b on a.parentgroup=b.childgroup
        where b.processed = 1

      SET @RowsAdded = @@rowcount
      /*Mark all employee records whose direct reports have been found
   in this iteration.*/

      UPDATE @PLExpand
      SET processed = 2
      WHERE processed = 1
   END#p#

-- copy to the result of the function the required columns
INSERT @retPLExpand
   SELECT parentgroup,childgroup,mount
   FROM @PLExpand

RETURN

END

調用方法如下:
select * from fn_aaa('a.1')
意思是找出a.1下的所有兒子及孫子.
 

 

【編輯推薦】

判斷閏年的SQL函數(shù)

巧用SQL函數(shù)讓公歷變農歷

詳解SQL中的DATALENGTH函數(shù)

基于時間SQL函數(shù)詳解

SQL中表變量的不足

責任編輯:段燃 來源: 互聯(lián)網(wǎng)
相關推薦

2010-11-12 14:21:15

SQL函數(shù)

2010-11-11 10:41:03

sql server遍

2010-11-11 10:53:22

SQL Server遍

2010-11-12 14:10:15

SQL遍歷父子關系表

2010-11-24 13:11:06

MySQL遍歷數(shù)據(jù)表

2010-09-06 16:52:17

SQL函數(shù)

2010-09-09 16:40:58

SQL循環(huán)游標

2010-09-14 15:51:15

sql遍歷

2010-11-11 11:00:06

sql server遍

2010-09-28 10:53:53

SQL表結構

2010-09-16 16:35:31

sql server表

2010-09-14 11:45:16

Sql Server系

2010-09-02 10:53:21

SQL刪除

2010-10-19 16:20:32

SQL SERVER表

2010-09-10 16:02:13

SQLCHARINDEX函數(shù)

2010-11-10 14:35:17

SQL Server創(chuàng)

2010-11-11 14:36:11

SQL Server系

2010-09-01 16:47:18

SQL刪除

2010-10-22 16:48:49

SQL刪除所有表數(shù)據(jù)

2010-09-16 15:20:36

sql server表
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美精品在线观看 | 在线免费观看黄a | 亚洲成人蜜桃 | 成人黄页在线观看 | 在线精品一区二区 | 欧美lesbianxxxxhd视频社区 | 亚洲精品视频在线 | 亚洲欧美一区二区三区视频 | 日韩精品一区二区三区在线观看 | 日韩国产欧美在线观看 | 91久久久www播放日本观看 | 中文字幕高清 | 国产精品国产 | 久久国产精品一区二区三区 | 激情欧美日韩一区二区 | 国产aa | 一区二区精品 | 久久久精品视频免费看 | 黑人性hd| 日韩在线国产 | 中文字幕高清av | 999免费网站 | 国产精品一区二区在线播放 | 祝你幸福电影在线观看 | 欧美精品一区二区在线观看 | 精品国产伦一区二区三区观看体验 | 在线观看国产网站 | 欧美专区在线 | 欧美日韩在线高清 | 成人黄色网址大全 | 欧美日韩黄色一级片 | 亚洲综合无码一区二区 | 日日夜夜免费精品 | 成人精品在线视频 | 91欧美 | 国产成人免费网站 | 久久99这里只有精品 | 国产精品免费一区二区 | 日韩中文字幕第一页 | 成人久久久久久久久 | 国产成人精品免高潮在线观看 |