Всем привет.
Есть табличка
В ней хранится древовидная структура работ.
Написала функцию, которая по id работы возвращает все родительские работы.
Все работает, но вот как ее использовать для нескольких работ не понимаю. Т.е. у меня есть выборка каких-то работ и мне нужно к каждой работе получить еще и родительские. Что-то типа такого
Помогите пожалуйста!
PS
Microsoft SQL Server 2014 (SP2) (KB3171021) - 12.0.5000.0 (X64)
Jun 17 2016 19:14:09
Copyright (c) Microsoft Corporation
Standard Edition (64-bit) on Windows NT 6.3 <X64> (Build 14393: )
Есть табличка
CREATE TABLE [dbo].[Works]( [ID_work] [int] IDENTITY(1,1) NOT NULL, [Parent] [int] NOT NULL , [WorkName] [varchar](max) NOT NULL)
В ней хранится древовидная структура работ.
Написала функцию, которая по id работы возвращает все родительские работы.
CREATE FUNCTION [dbo].[GetParentWork] (@idwork int) RETURNS @works TABLE (ID_Work int) BEGIN WITH wks (ID_Work, Parent) AS ( SELECT ID_work, Parent FROM dbo.Works WHERE ID_work=@idwork UNION ALL SELECT d.ID_Work, d.Parent FROM dbo.Works AS d INNER JOIN wks AS p ON p.Parent = d.ID_work ) Insert Into @works SELECT ID_work FROM wks return END
Все работает, но вот как ее использовать для нескольких работ не понимаю. Т.е. у меня есть выборка каких-то работ и мне нужно к каждой работе получить еще и родительские. Что-то типа такого
Select x.ID_Work From UsedWokrs w Inner Join [dbo].[GetParentWork](w.ID_work) x
Помогите пожалуйста!
PS
Microsoft SQL Server 2014 (SP2) (KB3171021) - 12.0.5000.0 (X64)
Jun 17 2016 19:14:09
Copyright (c) Microsoft Corporation
Standard Edition (64-bit) on Windows NT 6.3 <X64> (Build 14393: )