请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册

QQ登录

只需一步,快速开始

shnb

中级会员

15

主题

87

帖子

680

积分

中级会员

积分
680
shnb
中级会员   /  发表于:2024-11-19 19:59  /   查看:182  /  回复:6
20金币
我现在有这样三张表,一个销售单位表(单位编号,单位全称),一个销售表(单位编号,销售日期,销售单号,销售数量,销售金额),一个收款表(单位编号,收款日期,收款单号,收款金额),现在我想实现生成一个视图,就是用户可以选择输入一个时间段,然后根据这个时间段,按单位编号,同时生成销售总金额和收款总金额,视图包括(单位编号,销售数量,销售总金额,收款总金额)

这是我的SQL:

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

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

最佳答案

查看完整内容

方法一:视图里加日期,按日期,收款单位聚合汇总 再视图的基础上,加统计字段,sum(收款金额) sum(销售金额) 然后视图绑定表格,按前端的时间段过滤 方法二:用直接sql,加where条件 方法三:用存储过程,传参

6 个回复

倒序浏览
最佳答案
最佳答案
amtath悬赏达人认证 活字格认证
论坛元老   /  发表于:2024-11-19 19:59:19
来自 3#
方法一:视图里加日期,按日期,收款单位聚合汇总
再视图的基础上,加统计字段,sum(收款金额) sum(销售金额)
然后视图绑定表格,按前端的时间段过滤

方法二:用直接sql,加where条件
方法三:用存储过程,传参
回复 使用道具 举报
stranger
银牌会员   /  发表于:2024-11-19 20:03:56
2#


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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
shnb
中级会员   /  发表于:2024-11-19 20:19:11
4#
本帖最后由 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活字格认证 Wyn认证
超级版主   /  发表于:2024-11-20 15:40:10
5#
大佬,我理解既然用户要根据时间来搜索,那我们就得先确认用户输入的时间指的是哪个时间?

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

或者大佬搞一个demo上来,方便大家讨论更好的方案~~
回复 使用道具 举报
shnb
中级会员   /  发表于:2024-11-20 23:48:40
6#
我试试看,有三个表
回复 使用道具 举报
Nathan.guo活字格认证 Wyn认证
超级版主   /  发表于:2024-11-21 10:07:52
7#
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部