30秒到達(dá)戰(zhàn)場
2018-12-07 01:41:08
小弟分不多,真誠請教大俠們一個SQL問題,希望大俠們不吝賜教,小弟在此不甚感激。有一張表記錄物料 如下:(10C是父物料,30C是10C的子物料【30C本身也是父物料】70C是30C的子物料【70C本身也是父物料】)ITEMPARENT_CD ITEMCHILD_CD BOM_SQ ……ITEMPARENT_CD是主鍵? 10CA0001 30CA0001 1? 10CA0001 065A0001 2? 10CA0001 085A0001 3? 30CA0001 70CA0001 4? 30CA0001 021A0001 5? 70CA0001 011A0001 6現(xiàn)在要一條sql語句根據(jù)10C查詢出所有他的子物料(同時加上一個等級Level字段)效果如下:查詢條件是10CA0001Level ITEMCHILD_CD? 1 30CA0001? 2 70CA0001? 3 011A0001? 2 021A0001? 1 065A0001? 1 085A0001真誠請教大俠們該怎么實現(xiàn)?
12 回答

素胚勾勒不出你
TA貢獻(xiàn)1827條經(jīng)驗 獲得超9個贊
不理解你的意思, ?你是已經(jīng)有表結(jié)構(gòu),只需一條sql語句. ? 還是說需要幫助你怎么設(shè)計. ?
如果你已經(jīng)有表結(jié)構(gòu), 請把你建表的語句,以及測試數(shù)據(jù)編寫好,這樣有助于大家的理解,以便更好的幫助你.
但如果你是需要別人怎么幫你設(shè)計. 請把你的需求說明細(xì)點吧, 我還是沒理解你的意思.

DIEA
TA貢獻(xiàn)1820條經(jīng)驗 獲得超2個贊
建一個表T_Wuliao,表結(jié)構(gòu)和數(shù)據(jù)如下:
Level ITEMCHILD_CD
? 1? 30CA0001
? 2 70CA0001
? 3 011A0001
? 2 021A0001
? 1 065A0001
? 1 085A0001
然后select * from?T_Wuliao,結(jié)果100%就是你想要的。
趕緊給分。。。

小怪獸愛吃肉
是這個意思嗎?
TA貢獻(xiàn)1852條經(jīng)驗 獲得超1個贊
USE TEMPDB
GO
CREATE TABLE #TEMP
(
ID INT IDENTITY(1,1) PRIMARY KEY NOT NULL,
PARENTID INT
)
INSERT INTO #TEMP
VALUES(0),(1),(2),(3),(3),(2),(3),(2),(3),(2)
;WITH T AS
(
SELECT 1 AS [Level],* FROM #TEMP WHERE ID=3
UNION ALL
SELECT CASE WHEN T.ID=T.PARENTID THEN T.Level ELSE T.Level+1 END AS [Level],A.* FROM #TEMP AS A INNER JOIN T ON A.PARENTID=T.ID
)
SELECT * FROM T
- 12 回答
- 0 關(guān)注
- 564 瀏覽
添加回答
舉報
0/150
提交
取消