找回密码
 立即注册

QQ登录

只需一步,快速开始

ksw_hzg@163.com
金牌服务用户   /  发表于:2024-10-22 10:25  /   查看:306  /  回复:6
10金币
已上传demo。
问题如下图所示


该sql查询昨日的数据,我期望统计昨日报警消息为0的数据。(或者今日)
问题是上图的sql结果为0,我不太明白sql的语法,希望大佬们帮我纠正我这条sql的问题,使我能够查询统计出昨日报警消息为0有多少条数据。(如果报警消息不为0的又是怎么样?)
附件: 您需要 登录 才可以下载或查看,没有帐号?立即注册

最佳答案

查看完整内容

您好,这个查询可以不用执行 SQL 命令,可以直接用设置变量命令查询行数去实现,比如: 选择查询行数: 设置过滤条件,日期用等于。 这里有个细节,活字格中日期的等于过滤,会默认处理为时间段,比如上述设置的为日期等于 TODAY()-1,实际执行的 SQL 会自动出来为昨天的 0:00 到 23:59 这个时间范围内进行过滤,如下: 如果是写 SQL 命令也是可以的,但需要设计到一些日期的处理,具体和数据库有关,不通的数据集,相关 ...

6 个回复

倒序浏览
最佳答案
最佳答案
Simon.Sun活字格认证 Wyn认证
超级版主   /  发表于:2024-10-22 10:25:27
来自 4#
本帖最后由 Simon.Sun 于 2024-10-22 12:09 编辑

您好,这个查询可以不用执行 SQL 命令,可以直接用设置变量命令查询行数去实现,比如:
选择查询行数:

设置过滤条件,日期用等于。

这里有个细节,活字格中日期的等于过滤,会默认处理为时间段,比如上述设置的为日期等于 TODAY()-1,实际执行的 SQL 会自动出来为昨天的 0:00 到 23:59 这个时间范围内进行过滤,如下:

如果是写 SQL 命令也是可以的,但需要设计到一些日期的处理,具体和数据库有关,不通的数据集,相关函数不一样。如果是外联库,需要说明下使用的是什么外联库,这样能够更好地解决问题。这个场景,建议用设置变量命令去实现。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
二麻子
初级会员   /  发表于:2024-10-22 11:20:43
2#
内置数据表日期字段存的是Excel序列号日期,所以做了下日期转换,最后一行的意思是:发生日期等于今天减一的日期(将序列号日期按照yyyy-mm-dd的格式转为标准日期)。
  1. SELECT COUNT(*) AS AlarmCount
  2. FROM 数据表1
  3. WHERE 报警消息 = '0' ;
  4. AND DATE('1899-12-30', '+' || (发生日期 - 2) || ' days') = DATE('now', '-1 day');
复制代码

回复 使用道具 举报
ksw_hzg@163.com
金牌服务用户   /  发表于:2024-10-22 11:44:58
3#
二麻子 发表于 2024-10-22 11:20
内置数据表日期字段存的是Excel序列号日期,所以做了下日期转换,最后一行的意思是:发生日期等于今天减一 ...


大佬,您这条公式不行啊,我拿来去查询,等到昨天的数据是0条,按道理应该是2条的

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
二麻子
初级会员   /  发表于:2024-10-22 13:47:31
5#
ksw_hzg@163.com 发表于 2024-10-22 11:44
大佬,您这条公式不行啊,我拿来去查询,等到昨天的数据是0条,按道理应该是2条的

是的,我测了下。可以把查询条件里的 发生日期 - 2 改为 发生日期,如果减2是有问题的。
回复 使用道具 举报
ksw_hzg@163.com
金牌服务用户   /  发表于:2024-10-22 14:13:33
6#
Simon.Sun 发表于 2024-10-22 10:25
您好,这个查询可以不用执行 SQL 命令,可以直接用设置变量命令查询行数去实现,比如:
选择查询行数:

...

还得是您的方便
回复 使用道具 举报
Simon.Sun活字格认证 Wyn认证
超级版主   /  发表于:2024-10-22 14:38:44
7#
感谢大佬们的支持,后续有问题欢迎您发新贴交流~~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部