QueryBuildRange使用值及表达式过滤

机器学习预测股票收益(一)之随机森林模型 机器学习预测股票收益(一)前言一、导入库和数据二、处理数据以及计算特征变量三、使用随机森林回归预测股票收益1.构建训练集和测试集2.查看预测结果四、根据预测结果构建long-short投资组合1.定义投资组合函数2.定义绩效分析函数五、引入Fama-French Factor六、投资组合表现1.超额收益表现2.多因子回归总结 前言 本文将使用Python整理1927-2020年所有美国上市公司股票数据。根据历史收益以及交易量,使用随机森林,支持向量机以及神经网络等机器学习方法预测股票收益。最优结果构建的资产 阅读详情

希望各位可以提供更多的资料来完善本帖.

 

在开始使用QueryBuildRange进行与、或、等于等关系时,并不是想象中那么简单,本文章结合网络上的资料和我自己的实践总结了一些queryBuildRange值及表达式的使用方法。

一.      单一值作为过滤条件,如

Select inventtable where itemid = “aa”

可以使用如下代码

static void Job55(Args _args)

{

    Query                   query;

    QueryBuildRange         qbr;

    QueryBuildDataSource    qbds;

    QueryRun                qr;

    str                     qs;

    str                     s;

    InventTable             inventTable;

    ;

    qs      = '"aa"';

    query   = new Query();

    qbds    = query.addDataSource(tablenum(InventTable));

    qbr     = qbds.addRange(fieldnum(InventTable,ItemId));

    qbr.value(qs);

 

    qr = new QueryRun(query);

 

    while(qr.next())

    {

        inventTable = qr.get(tablenum(InventTable));

        s = s + inventTable.ItemId + '  ';

    }

    print s;

    pause;

}

这里需要注意一点,如果是字符串型的值,一般用(“)将值括起来,如果是数,则不需要,对于枚举需要转换成整数。

二.      使用两个不同字段的值以并的关系过滤,如

Select inventDim where color=”Gold” and size = “30”

只需要建立两个Range并分别添加过滤条件,如下:

static void Job55(Args _args)

{

    Query                   query;

    QueryBuildRange         qbr;

    QueryBuildDataSource    qbds;

    QueryRun                qr;

    str                     qscolor;

    str                     qssize;

    str                     s;

    InventDim               inventDim;

    ;

    qscolor     = '"Gold"';

    qssize      = '"30"';

    query   = new Query();

    qbds    = query.addDataSource(tablenum(InventDim));

    qbr     = qbds.addRange(fieldnum(InventDim,InventColorId));

    qbr.value(qscolor);

 

    qbr     = qbds.addRange(fieldnum(InventDim,InventSizeId));

    qbr.value(qssize);

   

    qr = new QueryRun(query);

 

    while(qr.next())

    {

        inventDim = qr.get(tablenum(InventDim));

        s = s + InventDim.InventDimId + '  ';

    }

    print s;

    pause;

}

三、最简单也是最方便的或,如

      Select inventTable where itemId = “aa” or itemId = “11”

      可以使用如下代码:

static void Job55(Args _args)

{

    Query                   query;

    QueryBuildRange         qbr;

    QueryBuildDataSource    qbds;

    QueryRun                qr;

    str                     qs;

    str                     s;

    InventTable             inventTable;

    ;

    qs     = '"aa","11"';

    query   = new Query();

    qbds    = query.addDataSource(tablenum(InventTable));

    qbr     = qbds.addRange(fieldnum(InventTable,ItemId));

    qbr.value(qs);

 

 

    qr = new QueryRun(query);

 

    while(qr.next())

    {

        inventTable = qr.get(tablenum(InventTable));

        s = s + inventTable.ItemId + '  ';

    }

    print s;

    pause;

}

四、实现字段间的或、与及组合过滤,如实现:

      Select inventTable where itemId = “aa” or itemName = “admin”

      首先需要给QueryBuildDataSource添加一个Rrange,具体添加那一个字段都可以,然后方法有三:

方法一:

Range的value需要满足以下条件:

1.整个表达式必须要' '引起来而不是" ";

2.这个表达式必须用()括起来;

3.每个子表达式必须用各自的()括起来;

4.对于当前表中的字段,用字段名直接引用即可;

5.对于其他表中的字段,引用时需要添加DataSource Name作为前缀;

6.string类型的值需要用" "引起来,也可包含在queryValue()中;

7.枚举类型的值需要用对应的int类型指定;

8.Date类型的值需要用Date2StrXpp()转化

代码如下:

static void Job55(Args _args)

{

    Query                   query;

    QueryBuildRange         qbr;

    QueryBuildDataSource    qbds;

    QueryRun                qr;

    str                     qs;

    str                     s;

    InventTable             inventTable;

    ;

    qs     = strfmt('((%1== "%2") || (%3=="%4"))',

            fieldStr(inventTable,ItemId),"aa",

            fieldStr(inventTable,ItemName),"admin");

           

    query   = new Query();

    qbds    = query.addDataSource(tablenum(InventTable));

    qbr     = qbds.addRange(fieldnum(InventTable,ItemId));

    qbr.value(qs);

 

 

    qr = new QueryRun(query);

 

    while(qr.next())

    {

        inventTable = qr.get(tablenum(InventTable));

        s = s + inventTable.ItemId + '  ';

    }

    print s;

    pause;

}

方法二:

字符串还是需要用 “ “ 括起来,其它符号用 ‘ ‘ 括起来,注意事项如方法一

static void Job55(Args _args)

{

    Query                   query;

    QueryBuildRange         qbr;

    QueryBuildDataSource    qbds;

    QueryRun                qr;

    str                     qs;

    str                     s;

    InventTable             inventTable;

    ;

    qs= '(' + fieldid2name(tablenum(inventTable),fieldnum(inventTable,Itemid))+ ' = "'+ '11'//queryvalue('aa')

        +'/") || ('

        +fieldid2name(tablenum(inventTable),fieldnum(inventTable,itemId))+ '=='+'"aa"'+')'

        ;

 

    query   = new Query();

    qbds    = query.addDataSource(tablenum(InventTable));

    qbr     = qbds.addRange(fieldnum(InventTable,ItemId));

    qbr.value(qs);

 

    qr = new QueryRun(query);

 

    while(qr.next())

    {

        inventTable = qr.get(tablenum(InventTable));

        s = s + inventTable.ItemId + '  ';

    }

    print s;

    pause;

}

方法三:

来自系统的标准方法,另一种表达方式,系统路径:Forms-->Adress-->DataSource Method  addQuerySalesQuotationTable

void addQuerySalesQuotationTable(SalesQuotationTable    _salesQuotationTable)

{

    QueryBuildDataSource    queryBuildDataSource;

    CustTable              custTable;

    str                    queryExpression;

    ;

    queryBuildDataSource    = this.query().dataSourceTable(tablenum(Address));

    custTable              = CustTable::Find(_salesQuotationTable.CustAccount);

 

    queryExpression = '(((' +

                          tableid2name(tablenum(Address)) + '.' + fieldid2name(tablenum(Address), fieldnum(Address, AddrTableId)) +

                          ' == ' + queryValue(_salesQuotationTable.TableId) +

                        ') && (' +

                          tableid2name(tablenum(Address)) + '.' + fieldid2name(tablenum(Address), fieldnum(Address, AddrRecId)) +

                          ' == ' + queryValue(_salesQuotationTable.RecId) +

                        ')) || ((' +

                          tableid2name(tablenum(Address)) + '.' + fieldid2name(tablenum(Address), fieldnum(Address, AddrTableId)) +

                          ' == ' + queryValue(custTable.TableId) +

                        ') && (' +

                          tableid2name(tablenum(Address)) + '.' + fieldid2name(tablenum(Address), fieldnum(Address, AddrRecId)) +

                          ' == ' + queryValue(custTable.RecId) +

                      ')))';

 

    queryBuildDataSource.addRange(fieldnum(Address, Address)).value(queryExpression);

}

高精度磁力计RM3100 传感器LR振荡电路偏置电路分析 LR振荡器电路通过正向和反向偏置实现磁场测量。Sen-XY-f/Z-f传感器线圈作为电感元件构成LR弛张振荡电路,其振荡频率随磁场变化而改变。测量时,线圈一端接地,另一端交替通入正反向电流,通过两次偏置测量消除电路自身磁场干扰,仅保留外部磁场影响。MagI2C芯片通过高速时钟测量振荡次数和时间差,计算磁场强度。该设计具有抗干扰强、数字化输出和高分辨率等优势,是RM3100传感器高精度磁测量的核心原理。 阅读详情

相关推荐

【YOLOv7-环境搭建】PyTorch安装后输出版本显示No module named ‘Torch’的解决方法

【YOLOv7-环境搭建】PyTorch安装后输出版本显示No module named ‘Torch’的解决方法:①检查PyCharm导入的环境是否错误②添加Torch包

qq_59942266的博客 4970

MySQL中的查询过滤条件where

查询wherelike(模糊查询)%下划线(_)and,or,notbetween and别名表达式 where 首先创建一个表并添加如下数据,在下述查询中均用到此表 create table student( id char(36) primary key, name varchar(8) not null, age int(3) default 0, mobile char(11), addr...

YXX_decsdn的博客 3237

UG NX与PLC-1500的在环虚拟测试

TIA、PLCSIM、NetToPLCsim、KEPServerEX以及UG NX的在环虚拟测试

lvtlvtlvtlvt的博客 4220

数据库查询过滤条件

本功能中函数用于oracle中,其他数据库根据思想自行百度。 问题描述: 在bug修复中发现前辈,条件过滤不充分,为了不破坏原sql结构。尽量加条件。过滤条件,除了and、or、if、group by 、having这些字段。还有一个差集、交集、并集、in、not in。 过滤介绍: 1、其他常用,不做介绍。in和not in有局限,首先in的容量好像不可以放操作1000条数据,如果你的过滤条件会随着时间变化而增加,不要使用in,其二使用in会涉及sql优化失效。 2、当需要过滤的条件有很多值,可以和原来表

m0_45226909的博客 2352

【工具】GitHub学生认证+PyCharm配置Copilot全流程指南

本文提供了一份详细的GitHub学生认证及在PyCharm中配置Copilot的完整指南。通过完成A2F认证、准备有效材料并使用干净网络环境,学生可免费获取GitHub Copilot Pro订阅,极大提升编程学习与开发效率。

w7x8y9z的博客 1459

win10任务栏文件夹设置成竖形列表样式

win10任务栏文件夹设置成竖形列表样式

ftzchina的博客 7081

4.5 正则表达式过滤查询数据

正则表达式用来匹配更加复杂的查询条件,例如你想从文件中提取电话号码,想从查找名字中间有数字的所有文件,甚至在一个文本块中查找所有重复的字符,都可以使用正则表达式完成;但是在此处,我们只介绍MySql中正则表达式的使用,具体关于正则表达式的内容,大家可以自行学习;MySql 用WHERE子句对正则表达式提供了初步的支持,允许你指定正则表达式,过滤SELECT查询出的数据;

蟑螂恶霸的博客 1428

设备接入与APP(应用程序)接入华为云iotDA平台的详细操作步骤及获取方式

设备及APP(应用程序) 登录 IoTDA 平台所需的 入场与操作清单内容,提供逐项详细操作步骤和获取方式,并穿插贴士便于理解与实际操作落地。内容基于 华为云 IoTDA 控制台 和 IAM 控制台 的实际使用路径整理。

hy行者勇哥的博客 3059

如何在REST API中使用查阅项的值作为过滤条件

原文地址:点击打开链接

shrenk的专栏 3339

手把手教你学基于 Linux 的 NPU 固件开发-第 10 讲:可靠性设计(RAS)——让系统坚如磐石错误检测、纠正与上报机制(ECC、Parity)

组件推荐保护机制备注HBM/DDRScrubbing必须开启,定期巡检片上 SRAMECC(权重/激活值),Parity(指令)权衡面积与可靠性计算单元ABFT或DMR(关键路径)防止计算逻辑错误片上网络CRC重传保证数据传输完整性系统软件AER 上报CE 监控自动恢复闭环管理,杜绝 SDC运维策略预测性维护Checkpoint变被动为主动核心心法(信任硬件,但必须验证。在纳米尺度下,错误是必然发生的物理现象。

MHD0815的博客 91

uniapp - 最新微信小程序手机号一键登录功能效果,uniapp小程序实现手机号码一键登录,uniapp微信小程序端通过手机号授权完成立即登录操作(详细示例源码,新手小白一键复制开箱即用)

uniapp,微信小程序,uniapp小程序平台,uniApp手机号一键登录,uniapp小程序端手机号一键登录功能,实现微信小程序手机号一键登录,在uniapp中实现获取手机一键登录功能,uniapp手机号快捷登录,uniapp微信小程序授权登录并获取手机号,微信小程序手机号快速验证组件调用方式,uniapp小程序怎么用手机号一键登录,uniapp一键登录流程及代码,如何获取手机号一键登录到小程序,微信小程序获取本机手机号一键登录功能,新手详细教程,详细手机一键登录完整示例代码,uni-app微信unia

✅ 精选推荐文章 1万+

【达梦数据库】条件过滤SQL

/</</</

m0_46475664的博客 1705

C#上位机国产化适配全方案:兼容统信UOS+鲲鹏/昇腾+国产PLC,可直接交付国企项目

去年下半年,我帮天津滨海新区一家给一汽丰田做配套的汽车零部件国企,完成了3条产线、12套C#上位机的全栈国产化适配。这个项目的背景很典型,也很戳中国企客户的命门:一开始客户找了两家本地的集成商,都没搞定:第一家只会用.NET Framework,根本不知道怎么在统信UOS上跑C#;第二家勉强用.NET Core 3.1跑起来了,但和汇川国产PLC的通信丢包率高达1.2%,产线根本不敢用。我们接手后,用了2个月完成全栈适配:从Windows Server 2019迁移到统信UOS 1070d服务器版,从.NE

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 498

AX 2009 Query类(一)

一. 过滤时的值的形式 query在ax里是个可变的自动生成的查询类。让我们能更灵变的解决不少查询问题。 在query中,过滤的关键就是query.value(_value)中参数_value的格式,该参数的值可以是基本数据类型、表达式、值列表。下面会依次示例它们的使用方法。 //最普通的query如下代码 View Code staticvoidqueryBas...

diuku1661的博客 270

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

QueryBuildRange的一些用法收集

近日在论坛帮网友解决问题的时候,碰到了QueryBuildRange的一个问题,AX编译器在QueryBuildRange.value(XXXX) 中的XXXX部分的语句非常严格而且有自己的一套‘潜在’规则,现整理如下:在使用QueryBuildRange的来进行比较复杂查询的时候,首先按正常的方式添加QueryBuildRange,查询建立的字段可以随意,然后按照如下的语法规则来构件来构

MBS_Eric的专栏 1035

QueryBuildRange中的表达式

QueryBuildRange中的表达式 在QueryBuildRange中很容易可以实现这样的功能:查询不同客户编号的客户,比如查询编号为A00001或者A00002的客户。如下代码所示: static void GeneralQueryBuild() { Query q; QueryRun qr; CustTable cust; str q...

weixin_30820151的博客 86

ef core操作达梦数据库,提示 【查询使用值表达式作为过滤条件】

这是因为ef core转成达梦sql的时候,当条件不匹配时,打印sql,发现会转成where 0 而不是 where 0=1;因此,可以使用Ef core的拦截器,进行修改,把where 0转为 where 0=1;启动运行,成功将where 0改为 where 0=1;同步异步尽量都加上,不然可能会漏掉拦截。也可以使用官网的方式进行添加。

dpq980522的博客 551

每日一课 | 通过查询条件实现数据过滤-01

05.数据过滤-查询条件大家好,我是小C,上期给大家分享——使用 SELECT 语句初步探索数据本期分享内容:通过查询条件实现数据过滤-01本期小C邀请的是董旭阳老师(资深数据库架构师)为...

sinat_32849897的博客 408

每日一课 | 通过查询条件实现数据过滤(完结篇)

06.数据过滤-复合条件大家好,我是小C,上期给大家分享——通过查询条件实现数据过滤-01本期分享内容:通过查询条件实现数据过滤(完结篇)本期小C邀请的是董旭阳老师(资深数据库架构师)为我...

sinat_32849897的博客 687

MYSQL使用正则表达式过滤数据

MYSQL使用正则表达式过滤数据总结和实际应用实例

Gy__My的博客 5240

Oracle数据库学习(三)--基础查询及关联查询

1. SQL(基础查询) 1.1. 基本查询语句 1.1.1. FROM子句 SQL查询语句的语法如下: SELECT column [alias], …> FROM table; 其中:SELECT用于指定要查询的列,FROM指定要从哪个表中查询。如果要查询所有列,可以在SELECT后面使用*号,如果只查询特定的列,可以直接在SELECT后面指定列名,列名

fudapeng7的博客 1万+

QueryBuilders.rangeQuery

数字范围查询 //闭区间查询 QueryBuilder qb1 = QueryBuilders.rangeQuery("${fieldName}").from(${fieldValue1}).to(${fieldValue2}); //开区间查询 QueryBuilder qb1 = QueryBuilders.rangeQuery("${fieldName}").from(${fieldValue1}, false).to(${fieldValue2}, false); //大于 Quer.

qq_36042938的博客 9829

QueryBuildRange的各种条件的总结

query = new Query(); qbds  = query.addDataSource(tableNum(InventTable)); qbr   = qbds.addRange(fieldNum(InventTable, DataAreaId)); 1. 等于 qbr.value("Item1") qbr.value(strFmt('(ItemId == "%1")',

代码生活 1491

D365:QueryBuildDataSource

QueryBuildDataSource

m0_46115516的博客 922

查询表达式和条件表达式

查询表达式 查询表达式可以作为过滤,分组,注解或者是聚合的一个值或者是计算。有很多内置表达式可以帮助你完成自己的查询。表达式可以组合,甚至是嵌套,来完成更加复杂的计算 内置表达式 说明 这些表达式定义在django.db.models.expressions和django.db....

chimianli4037的博客 2585

一个sql子查询作为过滤条件的例子(原创)

2007-05-08 14:58请看下面的问题数据表T1,结构如下:ID(标志列,主键) C1(日期列) C2(数值型)1 2007-05-01 00:00:00.000 72 2007-05-02 ...

weixin_30809333的博客 1259
上一篇: control事件的重写,以一个ListMOve为例
下一篇: Bar Code (条形码) 打印出现乱码的问题解决方案
再启动
博客等级 码龄19年 89粉丝 132原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值