powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / помогите разобраться c иерархией
11 сообщений из 11, страница 1 из 1
помогите разобраться c иерархией
    #39834198
elena1595
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день, помогите разобраться
Необходимо написать древовидный запрос MS SQL возвращающий дерево спецификации (состав) шины (таблица MD_BOM),
где: MAT_SAP_CODE – код материала
CHILD_MAT_SAP_CODE – код дочернего материала, из которого изготовлен MAT_SAP_CODE


Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
CREATE TABLE [dbo].[MD_BOM]( 
[MAT_SAP_CODE] [varchar](9) NOT NULL, 
[MAT_VARIANT] [varchar](10) NOT NULL, 
[CNT_CODE] [varchar](3) NOT NULL,
[LMM_SEQUENCE] [int] NOT NULL, 
[MT_CODE] [varchar](8) NOT NULL,
[BV_STATUS] [varchar](5) NOT NULL,
[CHILD_MAT_VARIANT] [varchar](10) NULL, 
[CHILD_MAT_SAP_CODE] [varchar](9) NULL, 
[CHILD_CNT_CODE] [varchar](3) NULL,
CONSTRAINT [XPKMD_BOM] PRIMARY KEY CLUSTERED
(
[MAT_SAP_CODE] ASC,
[MAT_VARIANT] ASC,
[CNT_CODE] ASC,
[MT_CODE] ASC,
[BV_STATUS] ASC,
[LMM_SEQUENCE] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] 

ALTER TABLE [dbo].[MD_BOM] WITH CHECK ADD CONSTRAINT [R_199] FOREIGN KEY([MAT_SAP_CODE], [MAT_VARIANT], [CNT_CODE])
REFERENCES [dbo].[MD_MATERIALS] ([MAT_SAP_CODE], [MAT_VARIANT], [CNT_CODE]) 


ALTER TABLE [dbo].[MD_BOM] WITH CHECK ADD CONSTRAINT [R_199_CHILD] FOREIGN KEY([CHILD_MAT_SAP_CODE], [CHILD_MAT_VARIANT], [CHILD_CNT_CODE])
REFERENCES [dbo].[MD_MATERIALS] ([MAT_SAP_CODE], [MAT_VARIANT], [CNT_CODE])
CREATE TABLE [dbo].[MD_MATERIALS]( 
[MAT_CODE] [varchar](6) NOT NULL,
[CNT_CODE] [varchar](3) NOT NULL,
[MAT_SAP_CODE] [varchar](9) NOT NULL, 
[MAT_PRODUCTION_GROUP] [varchar](10) NULL, 
[MAT_DESC] [varchar](40) NULL, 
CONSTRAINT [XPKMD_MATERIALS] PRIMARY KEY CLUSTERED 
(
[MAT_SAP_CODE] ASC,
[MAT_VARIANT] ASC,
[CNT_CODE] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]




До этого никогда не сталкивалась с такими задачами
...
Рейтинг: 0 / 0
помогите разобраться c иерархией
    #39834208
Фотография Щукина Анна
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
elena1595,

чтобы понять рекурсию - нужно понять рекурсию... :)
...
Рейтинг: 0 / 0
помогите разобраться c иерархией
    #39834211
Фотография Щукина Анна
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
elena1595,

опять же, надо понимать - что у вас там за граф. В чистом виде "дерево"? Или произвольные граф с замыканиями (петлями)?
...
Рейтинг: 0 / 0
помогите разобраться c иерархией
    #39834214
Фотография Щукина Анна
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
elena1595,

но по теме читать за " рекурсивный CTE "
...
Рейтинг: 0 / 0
помогите разобраться c иерархией
    #39834216
elena1595
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
произвольные граф с замыканиями (петлями)
...
Рейтинг: 0 / 0
помогите разобраться c иерархией
    #39834273
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
elena1595,

T-SQL не имеет средств для работы с зацикленными графами.
...
Рейтинг: 0 / 0
помогите разобраться c иерархией
    #39834310
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
elena1595произвольные граф с замыканиями (петлями)
Вы бредите?
Какая-такая "спецификация" "с петлями"?
...
Рейтинг: 0 / 0
помогите разобраться c иерархией
    #39834337
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владислав КолосовT-SQL не имеет средств для работы с зацикленными графами.Ну это зависит от того, что разуметь под "работой". Ибо оборвать рекурсию при обнаружении цикла не так уж и сложно, всего-то и надо что контролировать, что добавляемый узел отсутствует в CTE (а при поиске кратчайших путей тестировать на отсутствие дубликатов подпутей длины более 1).
...
Рейтинг: 0 / 0
помогите разобраться c иерархией
    #39834404
uaggster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Владислав Колосовelena1595,

T-SQL не имеет средств для работы с зацикленными графами.
2019 - уже имеет.
Спасибо за подсказку.
...
Рейтинг: 0 / 0
помогите разобраться c иерархией
    #39834405
uaggster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
помогите разобраться c иерархией
    #39834464
Фотография court
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
uaggsterelena1595, посмотрите вот эту ветку:
Думаю у ТС ситуацию значительно проще, чем в той задаче.
Ей просто нужно выполнить п.6 из Рекомендации по оформлению сообщений в форуме
потому как скрипт таблицы это конечно хорошо, но мало :)
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / помогите разобраться c иерархией
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]