مشکل با کوئری بازگشتی recursive query

بپرسید
  • stabesh stabesh
  • 100 ماه قبل
  • 100 ماه قبل
  • 902 نمایش

0

{{ digitTrunc(content.likes) }}

با عرض سلام

من یک جدول دارم که شماره جدید و قدیم کالا ها رو نگهداری می کنه در sql server 2008 r2

CREATE TABLE [dbo].[Parts_PartsReplace](
    [OldPartNum] [nvarchar](30) NOT NULL,
    [NewPartNum] [nvarchar](30) NOT NULL,
    [Dscp] [nvarchar](50) NULL,
 CONSTRAINT [PK_Parts_PartsReplace] PRIMARY KEY CLUSTERED 
(
    [OldPartNum] ASC,
    [NewPartNum] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]

حالا می خوام با استفاده از کوئری بازگشتی تمام شماره های جایگزین رو پیدا کنم اول یک view ساختم که تمام کالا ها رو چه شماره قدیم دارند چه ندارند برمی گردونه

SELECT     dbo.Parts_PartsReplace.OldPartNum, Parts_PartsReplace_1.NewPartNum
FROM         dbo.Parts_PartsReplace RIGHT OUTER JOIN
                      dbo.Parts_PartsReplace AS Parts_PartsReplace_1 ON dbo.Parts_PartsReplace.NewPartNum = Parts_PartsReplace_1.OldPartNum

و ازش استفاده کردم تا کوئری بازگشتی زیر رو بنویسم اما کوئری بازگشتی هیچی بر نمگردونه؟؟!!

WITH Parts_PartsReplaceRecursive(OPartNum,PartNum,LEVEL  )
AS
(
    SELECT OldPartNum,NewPartNum,0 AS LEVEL FROM dbo.Parts_PartsReplaceView WHERE OldPartNum = null
    UNION ALL
    SELECT OldPartNum,NewPartNum,Level + 1 AS LEVEL FROM dbo.Parts_PartsReplaceView
    INNER JOIN Parts_PartsReplaceRecursive AS PR ON PR.PartNum = dbo.Parts_PartsReplaceView.OldPartNum
)
SELECT OPartNum,PartNum,LEVEL FROM Parts_PartsReplaceRecursive
دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران

پاسخ ها به این سوال

پاسخ ها به این سوال

{{ digitTrunc(post.likes) }}

این پست در تاریخ {{ dateString(new Date(post.deleteDate)) }} توسط {{ post.deletedByUser }} حذف شده است.

دلیل حذف: {{ post.deleteReason ?? 'نامشخص' }}

{{ err }}
{{ post.userAchivements.rhodiumAchievements }}
{{ post.userAchivements.platinumAchievements }}
{{ post.userAchivements.goldAchievements }}
{{ post.userAchivements.silverAchievements }}
{{ post.userAchivements.bronzeAchievements }}
{{ timeSince(new Date(post.date)) }} قبل

برای ثبت پاسخ خود در وب سایت وارد حساب کاربری خود شوید
قابلیت ارسال مطلب توسط مدیریت سایت غیر فعال شده است