Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 не могу найти ошибку cte  [new]
Romanov-krd
Member

Откуда:
Сообщений: 84
with cte(group_identity, lv,member_identity) as
(select m.GROUP_IDENTITY,0 as lv,m.GROUP_IDENTITY from SharedServices.dbo.CSS_GROUP_MEMBERS m
where MEMBER_TYPE=1 
UNION ALL
select cte.member_identity,cte.lv+1,m1.GROUP_IDENTITY from SharedServices.dbo.CSS_GROUP_MEMBERS m1
inner join cte  on m1.MEMBER_IDENTITY=cte.group_identity )


в итоге вместо member_identity выдает значение group_identity, какое поле тут заменить?
15 мар 19, 09:00    [21833279]     Ответить | Цитировать Сообщить модератору
 Re: не могу найти ошибку cte  [new]
Щукина Анна
Member

Откуда:
Сообщений: 1249
Romanov-krd,

а чего у вас в определении СТЕ и в разных секциях юнион-ола порядок полей group_identity и member_identity пляшет "вашим-нашим"?
То вы указываете group_identity, ..., member_identity
то наоборот - member_identity, ..., group_identity
15 мар 19, 09:05    [21833282]     Ответить | Цитировать Сообщить модератору
 Re: не могу найти ошибку cte  [new]
Romanov-krd
Member

Откуда:
Сообщений: 84
Я исправил,
with cte(group_identity, lv,member_identity) as
(select m.GROUP_IDENTITY,0 as lv,m.MEMBER_IDENTITY from SharedServices.dbo.CSS_GROUP_MEMBERS m
where MEMBER_TYPE=1 
UNION ALL
select m1.GROUP_IDENTITY,cte.lv+1,cte.member_identity from cte 
inner join SharedServices.dbo.CSS_GROUP_MEMBERS m1  on cte.group_identity=m1.MEMBER_IDENTITY )



но при соединении представления с таблицей по group_identity

left join [SharedServices].[dbo].[CSS_PROVISIONING_INFO] aplication
on aplication.MEMBER_IDENTITY=cte.GROUP_IDENTITY


не выводит соответствия нижнего уровня иерархии (скрин во вложении)

получается представление не выводит все уровни до самого нижнего. Что тут еще нужно исправить?

К сообщению приложен файл. Размер - 3Kb
21 мар 19, 09:01    [21839124]     Ответить | Цитировать Сообщить модератору
 Re: не могу найти ошибку cte  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 18609
Покажите структуру и пример наполнения таблицы CSS_GROUP_MEMBERS (лучше в формате CREATE TABLE + INSERT INTO) и нужный результат на именно этих данных. Ещё лучше - создайте дополнительно fiddle.
21 мар 19, 09:11    [21839138]     Ответить | Цитировать Сообщить модератору
 Re: не могу найти ошибку cte  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 27934
Romanov-krd
Я исправил,
но при соединении представления с таблицей по group_identity
не выводит соответствия нижнего уровня иерархии (скрин во вложении)
А не наоборот нужно связывать?
Не inner join SharedServices.dbo.CSS_GROUP_MEMBERS m1 on m1.group_identity=cte.MEMBER_IDENTITY ?

В общем, разберитесь, что с чем связывается, и по каким полям. Нарисуйте на бумажке с конкретными значениями идентификаторов.
21 мар 19, 09:54    [21839184]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить