Axe 2012 - альтернативы прямым SQL-запросам

Я использую прямой запрос SQL в качестве источника данных моего отчета SSRS:

SELECT 
    emp.EmployeeNumber, FirstName, LastName, MiddleName
    , amts.AmountCode, amts.amt, amts.AmountType
from EmployeeMaster emp
LEFT OUTER JOIN 
(
    SELECT 'Earning' as AmountType, EmployeeNumber, EarningCode as AmountCode
            , SUM(Amount) AS amt 
            FROM EmployeeEarnings GROUP BY EmployeeNumber, EarningCode
    UNION ALL
    SELECT 'Deduction', EmployeeID, DeductionID
            , SUM(Amount) AS amt FROM EmployeeDeduction GROUP BY EmployeeID, DeductionId
) AS amts
ON emp.EmployeeNumber = amts.EmployeeNumber

Этот запрос собирает все доходы и отчисления на сотрудника, сгруппированные по номеру сотрудника, типу заработка и типу отчислений. Я не уверен, смогу ли я сделать это в x++ или запросе AOT. Мне интересно, если это нормально, или есть альтернатива для получения результата, как этот запрос? Я использую класс RDP.

2 ответа

Вложенные объединения не поддерживаются в AX. Однако вы можете сделать единый взгляд на EmployeeEarnings а также EmployeeDeduction, Затем вы можете выбрать EmployeeMaster и внешнее соединение с видом, чтобы получить тот же результат.

Ваш SQL неверен, так как не считает dataAreaId а также Partition,

Да, вложенные объединения не поддерживаются в AX. Да, вы можете сделать вид. И вы можете использовать ResultSet класс, чтобы получить результат sqlStatement с прямым SQL-запросом через SQLconnection,

Некоторое время назад я создал класс-оболочку https://github.com/mazzy-ax/SysResultSet. Комментарии только на русском языке. Сожалею. Проект для импорта в ax2012 https://github.com/mazzy-ax/SysResultSet/blob/ax2012/AOT/Classes/Class_SysResultSet.xpo

Это упрощает работу с прямым SQL-запросом. Попробуйте, если знаете, что делаете.

И, да, ваш SQL неверен, так как не учитывает dataAreaId а также Partition, Кроме того, ваш SQL-запрос игнорирует Axapta XDS (безопасность на уровне записей) и подсистему безопасности Axapta. Я думаю, что запрос AOT более адекватен.

Другие вопросы по тегам