问题描述
我想从SQL翻译过来
select * from table where table.field in('A','B')
到 Acumatica BQL.
to Acumatica BQL.
请帮助我获取此信息.
推荐答案
有几种方法可以做到:
1.使用 In3/Or 和 BQL 常量
您需要做的第一件事是创建表示A"和B"的 BQL 常量.像这样:
First thing you'll need to do is create BQL constants representing 'A' and 'B'.Like that:
public class constantA: PX.Data.Constant<string>
{
public constantA() : base("A") { }
}
public class constantB: PX.Data.Constant<string>
{
public constantB() : base("B") { }
}
这将允许您在 BQL 查询中使用 A 和 B.(您可以在 T200 培训中找到更多信息,示例 3.1:为查询页面提供数据)(您可以根据参数类型使用PX.Data.Constant
、PX.Data.Constant
等)
This will allow you to use A and B in your BQL query. (You can find more info about that in T200 Training, Example 3.1: Providing Data for the Inquiry Page)(you can use PX.Data.Constant<int>
, PX.Data.Constant<decimal>
, etc. depending on parameter type)
之后你可以编写 BQL:
After that you can compose BQL:
PXSelect<Table, Where<Table.field, In3<constantA, constantB>>>
(或 PXSelect, Or>>>
)
2.使用 In 和 Required
PXSelect<Table, Where<Table.field, In<Required<Table.field>>>>.Select(graph, new string[]{"A","B"}) //you may need to use array of objects instead of array of strings
这种方式允许您在运行时组合常量列表并将其作为参数传递给查询.参数应为对应类型的数组(本例中为字符串数组).
this way allows you to compose list of constants at runtime and pass it like a parameter to the query. Parameter should be array of the corresponding type(it's strings array in this example).
这篇关于在 Acumatica 中将 SQL 转换为 BQL的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!