碰到这样一个业务场景:每个用户订单会有好几个合同文件,其中某些合同文件需要盖章,盖章是有专门的盖章服务完成的,盖章完成后,文件会有一个ID与之匹配。

有一张报表,是基于sql脚本查询出的数据,一直是手动修改日期等关键字来每个月进行查询,目前的需求是把它做成自动化,并在PowerBi上实时查询。

Preface

关于这样一个业务,研发的同学建了如下这样一张表:

我把其中的日期做了一些自动化获取的处理,例如月初的获取,例如工作日的获取(上篇)等,在整个工作完成后,直接执行就能实时查询出最新的数据,效果很好,准备放在PowerBi上使用Sql语句来DirectQuery,结果报了错误信息,如下:

 

CREATE TABLE [dbo].[UserFile](
    [Id] [int] IDENTITY(1,1) NOT NULL PRIMARY KEY,
    ....
    [NeedStamp] [bit] NULL,
    [SealApplyId] [int] NULL
)

图片 1

    We’re used to get a logical backup
set(whole instance) by simply specifying “–single-transaction” and
“–master-data” options.For innodb engine tables,we can get a consistent
backup.But the non-innodb(not supporting transaction) tables may be not
backed up consistently in MySQL 5.7.

往里面塞数据的时候,需要盖章的文件:

在网上查找了下,有人这样解释

 

INSERT INTO [dbo].[UserFile](...,NeedStamp,SealApplyId)VALUES(...,1,NULL)

图片 2

Procedure

不需要盖章的文件:

 

 

INSERT INTO [dbo].[UserFile](...,NeedStamp,SealApplyId)VALUES(...,0,NULL)

简单来说,就是DirectQuery的查询,是通过子查询来实现的。

Check
and open general log(if have not enabled it yet).

然后定期抽取需要盖章的文件送去盖章服务:

select * from ([你想执行的语句])
 1 (zlm@192.168.1.101 3306)[(none)]>show variables like 'general_log';
 2 +---------------+-------+
 3 | Variable_name | Value |
 4 +---------------+-------+
 5 | general_log   | OFF   |
 6 +---------------+-------+
 7 1 row in set (0.00 sec)
 8 
 9 (zlm@192.168.1.101 3306)[(none)]>set @@global.general_log=on;
10 Query OK, 0 rows affected (0.01 sec)
11 
12 (zlm@192.168.1.101 3306)[(none)]>show variables like 'general_log';
13 +---------------+-------+
14 | Variable_name | Value |
15 +---------------+-------+
16 | general_log   | ON    |
17 +---------------+-------+
18 1 row in set (0.00 sec)
SELECT * FROM [dbo].[UserFile] WHERE NeedStamp = 1 AND SealApplyId IS NULL

这样的话,Declare肯定是会报错的。

 

盖好章之后呢:

我做了同样的实验,在Excel中建立一个这样的查询,是完全没有问题的,我注意到在Excel中,并没有Import和DirectQuery的选项,我想了下,可能是在Excel中是通过手动点击刷新,做了一遍重新导入的动作,这方面没有深究,所以我打算通过Excel来获得数据,然后在把它放在Onedrive上,接着再用PowerBi来获取Onedrive上的Excel文件,PowerBi上支持把Excel解析成一个工作簿,也可以实现点击实时刷新的效果,这是我昨天做的实验,我甚至都要妥协,打算使用这种看起来只需要点击的”简单方式”来实现。

发表评论

电子邮件地址不会被公开。 必填项已用*标注