2019-09-28 17:07:06 深表表格3
一、简介
深表的汇总表运行用户编写SQL脚本来从一个或多个表格生成复杂的查询统计结果。汇总表除了要遵循深表的一些规则外,其它都支持标准的SQL语句。熟悉SQL语法的技术人员很容易使用,没学过SQL语法的用户也可以模仿案例写出简单的汇总表。
二、结构
深表汇总表脚本使用说明汇总表结构如下:
- - - - - - - - - - - - - - - - - - - - - - - - - - -
[fields] name_名称_s_200,money_金额_m_80 [/fields]
[sql]
select '张三' as name, 500 as money;
[/sql]
- - - - - - - - - - - - - - - - - - - - - - - - - - -
说明:[fields]与[fields]之间定义列,每个列的格式是:列id-列名称-列类型-列长度。字段类型和长度可写可不写。
[sql]与[/sql]之间定义 查询语句。
1、sql语句必须以 select 开头。
2、sql语句中的字段ID与[fields]与[fields]之间定义的列的ID一样时,查询结果才会显示在相应的列里。
三、例子
下面举例说明如何查询你自己创建的表格的数据。
例子1: 你有一个表格叫客户表,id是19092520372303997110。
你打开某个表格后,表格的id可以在浏览器地址栏里找到。
这个客户表有客户名称、手机号、订单总金额三个字段,字段id分别是sys_string1、sys_string2、sys_float5
说明:字段的id可以在表格-列设置,在列设置页面的倒数第二项目属性就是字段id。
那么查询这个表的sql语句如下:
- - - - - - - - - - - - - - - - - - - - - - - - - - -
[fields]name_名称_s_200,mobile_手机号,money_金额_m_80[/fields]
[sql]
select a.s_string1 as name ,a.s_string2 as mobile, a.s_float5 as money from table_19092517005384608159_客户表 a
[/sql]
- - - - - - - - - - - - - - - - - - - - - - - - - - -
说明如下:
1 如果字读id包含sys_,则改为s_
2 需要给每个表格一个别名。例子中别名是a。在该表的每个字段前加这个别名,别名与字段id之间用 . 连接。
当然这只是简单的例子。sql支持复杂的多表查询和统计,支持sql的join、sum、where、order by等所有查询关键词。不支持任何更新和删除语句.
下面说明复杂的例子。
例子2: 统计各行业客户金额合计。假设下列脚本中s_string2是客户表的【行业】字段的id。
- - - - - - - - - - - - - - - - - - - - - - - - - - -
[fields]type_客户行业_s_200,money_订单金额_m_80[/fields]
[sql]
select a.s_string2 as type , sum(a.s_float5) as money from table_19092517005384608159_客户表 a group by a.s_string2
[/sql]
- - - - - - - - - - - - - - - - - - - - - - - - - - -
查询结果范例:
行业 订单金额
教育 10000
电商 30000
广告 25000
例子3: 从客户表和订单表联合查询列出所有客户所有订单,先客户客户排序,再按订单金额从大到小排序。
假设:客户表id是19092517005384608159,客户名称字段id是sys_string1,地区字段id是sys_string2;
订单表id是19092517005384602222,客户名称字段id是sys_string2,订单日期字段id是sys_date1,订单金额字段id是sys_float1。
- - - - - - - - - - - - - - - - - - - - - - - - - - -
[fields]name_客户名称_s_200,orderdate_订单日期,money_订单金额_m_80[/fields]
[sql]
select a.s_string1 as name ,b.s_date1 as orderdate,b,s_float1 as money from table_19092517005384608159_客户表 a
left join table_19092517005384602222_订单表 b on b.s_string2=a.s_string1
order by a.s_string1,b.s_float1 desc
[/sql]
- - - - - - - - - - - - - - - - - - - - - - - - - - -
查询结果范例:
客户名称 订单日期 订单金额
客户A 2019-02-11 30000
客户A 2019-02-21 20000
客户A 2019-03-11 10000
客户B 2019-02-21 50000
客户B 2019-03-11 40000
四、其它
1、汇总表的结果也可以共享给其他人查看。
2、深表汇总表可以写出多复杂的结果?答案是:可以非常复杂。
(完)