1
我需要你在SQL Server中使用CTE進行遞歸查詢的幫助。SQL Server遞歸查詢獲得頂級父
我有order no作爲輸入參數..我需要顯示其頂級父寄件的詳細信息。即使我搜索它的孩子..即如果我搜索訂單3號,我應該得到其頂級父母訂單號。這是20
這裏是我的表結構..提前
CREATE TABLE #TblSerialNo
(
[SRno] [char](20) NOT NULL ,
[CustSrNo] [varchar](75) NULL
)
CREATE TABLE #TblSerialReleation
(
[SRno] [char](20) NOT NULL ,
[ChildSRno] [char](20) NOT NULL
)
CREATE TABLE #TblDespatch
(
[SRno] [char](20) NOT NULL ,
OrderNo INT NOT NULL
)
INSERT INTO #TblSerialNo VALUES ('TS1', 'DD123CV1')
INSERT INTO #TblSerialNo VALUES ('TS2', 'DD123CV2')
INSERT INTO #TblSerialNo VALUES ('TS3', 'DD123CV3')
INSERT INTO #TblSerialNo VALUES ('BS1', 'DD12sfs3CV1')
INSERT INTO #TblSerialNo VALUES ('BS2', 'DD1et23CV2')
INSERT INTO #TblSerialNo VALUES ('CS1', 'DD12e3CV1')
INSERT INTO #TblSerialNo VALUES ('CS2', 'DD12fe3CV2')
INSERT INTO #TblSerialNo VALUES ('BS1aa', 'DD12d3CV1')
INSERT INTO #TblSerialNo VALUES ('BS1ab', 'DDd123CV2')
INSERT INTO #TblSerialNo VALUES ('BS1ac', 'DD1r23CV3')
INSERT INTO #TblSerialNo VALUES ('BS2aa', 'DDs123CV4')
INSERT INTO #TblSerialNo VALUES ('BS2ab', 'DD12d3CV1')
INSERT INTO #TblSerialNo VALUES ('BS2ac', 'DD1s23CV2')
INSERT INTO #TblSerialNo VALUES ('CS1aa', 'DD1s23CV3')
INSERT INTO #TblSerialNo VALUES ('CS1ab', 'DD12s3CV4')
INSERT INTO #TblSerialNo VALUES ('CS1ac', 'DD123dCV1')
INSERT INTO #TblSerialNo VALUES ('CS2aa', 'DDa123CV2')
INSERT INTO #TblSerialNo VALUES ('CS2ab', 'DDa123CV3')
INSERT INTO #TblSerialNo VALUES ('CS2ac', 'DDa123CV4')
--================ Relation table ==============
INSERT INTO #TblSerialReleation VALUES ('TS1', 'BS1')
INSERT INTO #TblSerialReleation VALUES ('TS1', 'BS2')
INSERT INTO #TblSerialReleation VALUES ('TS2', 'CS1')
INSERT INTO #TblSerialReleation VALUES ('TS2', 'CS2')
INSERT INTO #TblSerialReleation VALUES ('BS1', 'BS1aa')
INSERT INTO #TblSerialReleation VALUES ('BS1', 'BS1ab')
INSERT INTO #TblSerialReleation VALUES ('BS1', 'BS1ac')
INSERT INTO #TblSerialReleation VALUES ('BS2', 'BS2aa')
INSERT INTO #TblSerialReleation VALUES ('BS2', 'BS2ab')
INSERT INTO #TblSerialReleation VALUES ('BS2', 'BS2ac')
INSERT INTO #TblSerialReleation VALUES ('CS1', 'CS1aa')
INSERT INTO #TblSerialReleation VALUES ('CS1', 'CS1ab')
INSERT INTO #TblSerialReleation VALUES ('CS1', 'CS1ac')
INSERT INTO #TblSerialReleation VALUES ('CS2', 'CS2aa')
INSERT INTO #TblSerialReleation VALUES ('CS2', 'CS2ab')
INSERT INTO #TblSerialReleation VALUES ('CS2', 'CS2ac')
--=========== Despatch
INSERT INTO #TblDespatch VALUES ('CS2ac', 1)
INSERT INTO #TblDespatch VALUES ('CS2ab', 1)
INSERT INTO #TblDespatch VALUES ('CS2ac', 1)
INSERT INTO #TblDespatch VALUES ('CS1aa', 1)
INSERT INTO #TblDespatch VALUES ('CS1ac', 1)
INSERT INTO #TblDespatch VALUES ('CS2ac', 1)
INSERT INTO #TblDespatch VALUES ('CS2ac', 1)
INSERT INTO #TblDespatch VALUES ('TS1', 1)
INSERT INTO #TblDespatch VALUES ('TS3', 2)
INSERT INTO #TblDespatch VALUES ('TS2', 3)
INSERT INTO #TblDespatch VALUES ('BS2ab', 20)
DROP TABLE #TblDespatch
DROP TABLE #TblSerialNo
DROP TABLE #TblSerialReleation
感謝。
我覺得我們失去了一些東西 - 他們怎麼鏈接(如果你現在用手工做)?我沒有看到上述數據中的關係。 – sgeddes 2013-02-15 14:59:10
@sgeddes它似乎在'TblSerialReleation'表 – GolfWolf 2013-02-15 14:59:36
@ w0lf - 我看到它假設存在 - 但我無法弄清楚TS2如何在發送表中匹配BS2ab(20) - 我沒有看到:) – sgeddes 2013-02-15 15:01:55