Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 SQL 2012 With запроc аналог String_aGG работает не ожидаемо  [new]
Гулин Федор
Member

Откуда: МИНСК
Сообщений: 1238
Добрый день всем.
Нет String_aGG в 2012

Запрос возввращате не корректные данные (все занчения полей NAME для номеров ордеров)
ожидается - только свои имена

; WITH   tt1 AS 
( 
Select 
Id_OrderBase , name , Id_OrderCommon_RejectionReason
FROM #t
WHERE
Id_OrderBase IN( 2039224, 2039538 , 2039350 ,2039480 )
-- Id_OrderBase = 2039350 
)
-- SELECT * FROM TT1
select  DISTINCT 
Id_OrderBase
,  stuff((
    select concat(';',NAME ) 
    from  tt1 -- #t  
    where 
    Id_OrderBase = tt1.Id_OrderBase
      order by Id_OrderCommon_RejectionReason  
    for XML path('')
    ),1, 1 ,'$$') as txt1
from  tt1

Причем если в With секции одна запись то все ок.

Если загнать в таблицу #t 1-й запрос With
и гонять тот же SQL по #t
- то тоже будут корректные данные


Есть причина почему хочется впихнуть в ОДИН запрос
- это только часть запроса к-й пойдет на link server
через SELECT * FROM OPENQUERY( [link1], '<Сложный запрос.>' )


Кто-нибудь подскажет почему это так
и воркараунд ?
23 сен 19, 18:05    [21977172]     Ответить | Цитировать Сообщить модератору
 Re: SQL 2012 With запроc аналог String_aGG работает не ожидаемо  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36968
Кто пишет коррелированные подзапросы без алиасов на таблицы -- сам себе злобный буратина.
23 сен 19, 18:09    [21977177]     Ответить | Цитировать Сообщить модератору
 Re: SQL 2012 With запроc аналог String_aGG работает не ожидаемо  [new]
Minamoto
Member

Откуда: Москва
Сообщений: 1162
Гулин Федор
Добрый день всем.
Нет String_aGG в 2012

Запрос возввращате не корректные данные (все занчения полей NAME для номеров ордеров)
ожидается - только свои имена

; WITH   tt1 AS 
( 
Select 
Id_OrderBase , name , Id_OrderCommon_RejectionReason
FROM #t
WHERE
Id_OrderBase IN( 2039224, 2039538 , 2039350 ,2039480 )
-- Id_OrderBase = 2039350 
)
-- SELECT * FROM TT1
select  DISTINCT 
Id_OrderBase
,  stuff((
    select concat(';',NAME ) 
    from  tt1 -- #t  
    where 
    Id_OrderBase = tt1.Id_OrderBase
      order by Id_OrderCommon_RejectionReason  
    for XML path('')
    ),1, 1 ,'$$') as txt1
from  tt1

Причем если в With секции одна запись то все ок.

Если загнать в таблицу #t 1-й запрос With
и гонять тот же SQL по #t
- то тоже будут корректные данные


Есть причина почему хочется впихнуть в ОДИН запрос
- это только часть запроса к-й пойдет на link server
через SELECT * FROM OPENQUERY( [link1], '<Сложный запрос.>' )


Кто-нибудь подскажет почему это так
и воркараунд ?

Самострелджойн.
Задайте разные алиасы и при соединении укажите эти алиасы.
23 сен 19, 18:09    [21977178]     Ответить | Цитировать Сообщить модератору
 Re: SQL 2012 With запроc аналог String_aGG работает не ожидаемо  [new]
Гулин Федор
Member

Откуда: МИНСК
Сообщений: 1238
Minamoto,
Гавриленко Сергей Алексеевич

СПС
да так и есть
23 сен 19, 18:32    [21977204]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить