上篇只是介绍了SqliteDB的用法,忽视了SQL命令,在介绍生成报表之前,还是先提一下。 以管支架材料表程序为例。
首先是创建一个表,如果没有指定文件,这个表在内存中生成。创建表的语法与普通的SQL命令没有什么差别,这里面可能唯一不同的是PySqlite有个text数据类型。在管支架材料表中,需要数量、单位和部件名三列,所以创建表的语法如下:
create table PipeSupportMaterial (quantity integer, unit text, compname text)
其次是要插入数据,使用insert into即可完成此操作,需要注意的是变量部分用?占位,变量由嵌套的List传入,List的结构不能出错,形如:values = [[1, 'pcs', 'ubolt-8'], [5, 'mm', 'L30X30'], [4, 'mm', 'L30X30']],插入命令如下:
insert into PipeSupportMaterial (quantity, unit, compName) values (?, ?, ?)
至此,我们生成了一个表,表的结构及数据如下:
PipeSupportMaterial表
quantity unit compname
1
5
4
根据材料表的要求,需要按照部件名称汇总,将相同部件材料按照型材累加长度,板材和零件累计个数。这时候Select语句就不是简单的列出表中的数据了。group by的意思是按照compname列的内容汇总,而sun()函数是将汇总后的数据求和,sum(quantity) quantity的意思是对汇总后的quantity列求和,并把结果赋给quantity列,SQL语句如下:
select sum(quantity) quantity, unit, compname from PipeSupportMaterial group by compname
查询语句的结果:
quantity unit compname
1
9
将这个结果写入到Excel表格中,材料表就形成了。