找回密码
 立即注册

QQ登录

只需一步,快速开始

zjj285156

初级会员

18

主题

38

帖子

256

积分

初级会员

积分
256
zjj285156
初级会员   /  发表于:2023-3-16 21:15  /   查看:2008  /  回复:8
本帖最后由 zjj285156 于 2023-3-17 11:30 编辑

日志数据库依据当前年月自动生成尾缀不同的表

微信截图_20230316210407.png
第一次直接用查询参数基于表达式“DataLog”& format(today(),“yyyyMM”)尝试,失败,提示要先声明表变量
浏览了下论坛,得出错误应该在于传值进去是以‘参数内容’文本格式的,表名不能加引号

然后再看论坛里,有人实现了更进阶的需求,参考https://gcdn.grapecity.com.cn/showtopic-75421-1-1.html

照葫芦画瓢,在查询语句中填入
=“SELECT EventId,EntityName,BusinessCode,ModiColumnsInfo FROM“ & @para1 & ” WHERE 1=1 AND EntityName = 'ITEM'AND ModiColumnsInfo LIKE '%品号描述%'”
失败。系统没进行公式转换,直接给转义了

帮忙看下是哪里出了问题,为啥参考帖子里的能实现,是版本差异的关系嘛
另外看下有啥更好的方法可以实现依据当前年月来查询不同的日志表?

8 个回复

倒序浏览
Bella.YuanWyn认证
超级版主   /  发表于:2023-3-17 11:06:15
来自 6#
zjj285156 发表于 2023-3-17 10:21
另外是不是我环境问题,哪怕我依照你的方式方法去操作,也不可行

我的数据库是MS SQL SERVER 2014

您好,这个正确做法是您先写一个正确的sql,先验证通过,然后在添加sql语句进行查询,具体可以参考附件视频写法。
demo.gif
回复 使用道具 举报
Eden.SunWyn认证
超级版主   /  发表于:2023-3-17 09:40:10
沙发
您好,您要查询不同表,首先要保证这些表中的字段名称完全相同。
然后,在内置数据集中书写SQL来进行判断,
我用a、b两张表做测试:
image.png650956115.png

设置参数,并工具参数写动态SQL:
select * from  {IIF(@报表参数1 = "a", "a", "b")}
image.png229765013.png


效果:
动态查表.gif805341491.png

回复 使用道具 举报
zjj285156
初级会员   /  发表于:2023-3-17 09:48:36
板凳
我了解了你这种通过选择年月来动态查询的方式。但是我的需求不太一样,我们的报表是通过后台计划任务来每天定时发送的。
准确的说,是每天早上九点,通过查询相应的日志记录表来输出报表
上文我提到过,日志机制会在每个月新建一张数据库表,命名格式为DataLog_yyyyMM
如此我计划通过以下语句来实现
SELECT EventId,EntityName,BusinessCode,ModiColumnsInfo FROM DataLog_{Format(Today(), "yyyyMM")} WHERE 1=1 AND EntityName = 'ITEM'AND ModiColumnsInfo LIKE '%品号描述%'
但是该语句点验证后就一直卡顿。
请帮忙看下有啥问题,如何处理能满足需求?
另外,参考帖子里的方法,通过字符拼接的方式是已经失效了吗?
验证卡顿.png
回复 使用道具 举报
zjj285156
初级会员   /  发表于:2023-3-17 09:50:51
地板
另外,该语句在文本框中已经验证没有问题
11.png
22.png
33.png
回复 使用道具 举报
zjj285156
初级会员   /  发表于:2023-3-17 10:21:48
5#
另外是不是我环境问题,哪怕我依照你的方式方法去操作,也不可行

我的数据库是MS SQL SERVER 2014
wyn版本是6.0 update1
在我输入查询语句后,随便哪点一下,验证按钮就灰色了
44.png
回复 使用道具 举报
zjj285156
初级会员   /  发表于:2023-3-17 11:25:41
7#
本帖最后由 zjj285156 于 2023-3-17 11:27 编辑

问题解决了
回复 使用道具 举报
zjj285156
初级会员   /  发表于:2023-3-17 11:27:01
8#
Bella.Yuan 发表于 2023-3-17 11:06
您好,这个正确做法是您先写一个正确的sql,先验证通过,然后在添加sql语句进行查询,具体可以参考附件视 ...


我试了下,确实如此。可以把这个操作写入文档中,后续其他人就不用想我一样疑惑了。
回复 使用道具 举报
Bella.YuanWyn认证
超级版主   /  发表于:2023-3-17 11:31:39
9#
zjj285156 发表于 2023-3-17 11:27
我试了下,确实如此。可以把这个操作写入文档中,后续其他人就不用想我一样疑惑了。

OK,这个后面我们反馈一下,那本帖就结贴了,有问题开新帖哦~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部