Acumatica 5.1 和 5.2 中的 PXSelectGroupBy 和 Bit 值
在 Acumatica Framework 5.2 中,BQL PXSelectGroupBy<>
資料檢視的 SQL 生成方法已經改變。
以下部分使用 PXSelectGroupBy<FinYear, Aggregate<GroupBy<FinYear.finPeriods>>>.Select(graph)
的示例說明了不同之處:
Acumatica Framework 5.2 及更高版本
SELECT Max([finyear].[year]),
Max([finyear].[startdate]),
Max([finyear].[enddate]),
[finyear].[finperiods],
-- Attention!
CONVERT (BIT, Max([finyear].[customperiods] + 0)),
--
Max([finyear].[begfinyearhist]),
Max([finyear].[periodsstartdatehist]),
Max([finyear].[noteid]),
( NULL ),
( NULL ),
( NULL ),
Max([finyear].[tstamp]),
Max([finyear].[createdbyid]),
Max([finyear].[createdbyscreenid]),
Max([finyear].[createddatetime]),
Max([finyear].[lastmodifiedbyid]),
Max([finyear].[lastmodifiedbyscreenid]),
Max([finyear].[lastmodifieddatetime])
FROM finyear FinYear
WHERE ( finyear.companyid = 2 )
GROUP BY [finyear].[finperiods]
ORDER BY Max([finyear].[year])
Acumatica Framework 5.1 及早期版本
SELECT Max([finyear].[year]),
Max([finyear].[startdate]),
Max([finyear].[enddate]),
[finyear].[finperiods],
-- Attention!
( NULL ),
--
Max([finyear].[begfinyearhist]),
Max([finyear].[periodsstartdatehist]),
( NULL ),
( NULL ),
( NULL ),
Max([finyear].[tstamp]),
( NULL ),
Max([finyear].[createdbyscreenid]),
Max([finyear].[createddatetime]),
( NULL ),
Max([finyear].[lastmodifiedbyscreenid]),
Max([finyear].[lastmodifieddatetime])
FROM finyear FinYear
WHERE ( finyear.companyid = 2 )
GROUP BY [finyear].[finperiods]
ORDER BY Max([finyear].[year])
說明
預設情況下,Max()
聚合應用於 BQL 語句中未明確提及的所有欄位。
但是,在 Acumatica 5.1 及更早版本中,它排除了 CreatedByID
,LastModifiedByID
和 bool
欄位。當轉換為 SQL 時,除非你明確分組,否則這些欄位將始終為 null
。
從版本 5.2 開始,預設情況下也將為他們應用 Max()
。