shnb 发表于 2024-11-19 19:59:18

10.0.102.0 抛个问题。

我现在有这样三张表,一个销售单位表(单位编号,单位全称),一个销售表(单位编号,销售日期,销售单号,销售数量,销售金额),一个收款表(单位编号,收款日期,收款单号,收款金额),现在我想实现生成一个视图,就是用户可以选择输入一个时间段,然后根据这个时间段,按单位编号,同时生成销售总金额和收款总金额,视图包括(单位编号,销售数量,销售总金额,收款总金额)

这是我的SQL:

SELECT 单位编号,sum(收款.收款金额) AS "收款总金额",sum(销售.销售金额) AS 销售总金额,sum(销售.销售数量) AS 销售数量 FROM 销售单位表
left JOIN销售 ON 销售单位表.单位编号=销售.销售单位编号
left JOIN收款 ON 销售单位表.单位编号=收款.收款单位
group by 销售单位表.单位编号

我不知道从哪里搜索出用户输入时间段的数据。

amtath 发表于 2024-11-19 19:59:19

方法一:视图里加日期,按日期,收款单位聚合汇总
再视图的基础上,加统计字段,sum(收款金额) sum(销售金额)
然后视图绑定表格,按前端的时间段过滤

方法二:用直接sql,加where条件
方法三:用存储过程,传参

stranger 发表于 2024-11-19 20:03:56



创建时间和创建人,加上就行

shnb 发表于 2024-11-19 20:19:11

本帖最后由 shnb 于 2024-11-19 20:22 编辑

我试下方法一,这里有二个日期,一个是销售日期,一个是收款日期,都加上吗?分类统计时也加上这二个日期?方法二加WHERE,但是时间由用户自己录入的,怎么做?方法三我再想想看
方法一:
SELECT 单位编号,收款日期,sum(收款.收款金额) AS "收款总金额",销售日期,sum(销售.销售金额) AS 销售总金额,sum(销售.销售数量) AS 销售数量 FROM 销售单位表
left JOIN销售 ON 销售单位表.单位编号=销售.销售单位编号
left JOIN收款 ON 销售单位表.单位编号=收款.收款单位
group by 销售单位表.单位编号,收款日期,销售日期

Nathan.guo 发表于 2024-11-20 15:40:10

大佬,我理解既然用户要根据时间来搜索,那我们就得先确认用户输入的时间指的是哪个时间?

如果数据是多对多的关系,我们完全可以不在视图中去group by,而是给视图建一个统计字段,再查询完成后再利用统计字段来实现汇总~~
https://www.grapecity.com.cn/solutions/huozige/help/docs/fieldtype/statisticalfield

或者大佬搞一个demo上来,方便大家讨论更好的方案~~

shnb 发表于 2024-11-20 23:48:40

我试试看,有三个表

Nathan.guo 发表于 2024-11-21 10:07:52

:i0tw2:
页: [1]
查看完整版本: 10.0.102.0 抛个问题。