SQL Альтернатива для FOR XML PATH - PullRequest
0 голосов
/ 10 марта 2020

По какой-то причине мой запрос:

SELECT 
    MP_SQLQRY_ProjectArchive.ProjectShort, 
    MP_SQLQRY_ProjectArchive.ProjectName ,
    MP_SQLQRY_ProjectArchive.ProjectManagerName ,
    ProjectOwnerName,
    ProjStateName,
    ProjectKategoryShort,
    ProjectTypeShort,
    MP_SQLQRY_ProjectArchive.ProjectPriority,
    DepartmentShort,
    ProjectArchivedDate,
    CONVERT(NVARCHAR(MAX),ERPAccountCodes.ERPAccountCodes) As ERPAccountCodes
FROM 
    MP_SQLQRY_ProjectArchive
INNER JOIN 
    SQLQRY_VALID_PROJECT_ORDER_INFO ON MP_SQLQRY_ProjectArchive.ProjectID = SQLQRY_VALID_PROJECT_ORDER_INFO.ProjectID
INNER JOIN 
    COM_tbl_MAD_Project ON MP_SQLQRY_ProjectArchive.ProjectID = COM_tbl_MAD_Project.ProjectID
LEFT JOIN 
    (SELECT 
         ProjectID, 
         CONVERT(Nvarchar(max), STUFF((SELECT ';' + [SAPNumber] AS [data()]
                                       FROM [COM_tbl_MAD_ProjectERPAccountCode] t2
                                       WHERE t2.[ProjectID] = t1.[ProjectID]
                                       ORDER BY [SAPNumber]
                                       FOR XML PATH('')), 1, 1, '')) AS ERPAccountCodes
     FROM  
         [COM_tbl_MAD_ProjectERPAccountCode] t1
     GROUP BY 
         [ProjectID], [SAPNumber]) AS ERPAccountCodes ON ERPAccountCodes.ProjectID = COM_tbl_MAD_Project.ProjectID

не вернет значения для столбца ERPAccountCodes. На сервере SQL он работает нормально, и я получаю свои значения, которые разделяются с ;, как я хочу.

Но когда я запускаю его как внешнее соединение с ADODB в доступе, этот единственный столбец становится пустым.

Я полагаю, что это проблема с доступом или ADODB, но я понятия не имею, что с этим делать

Есть ли альтернатива FOR XML PATH или есть другой способ сделать это?

Для пояснения, значения возвращают некоторые пустые значения. Не NULL, только эти странные пустые символы, когда я отлаживал в VBA при доступе, хотя я пытался преобразовать его в NVarchar, который теоретически должен работать очень хорошо.

Слева - Excel, созданный из вызова MS Access SQL , Справа от SQL Студия управления сервером:

Screenshot

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...