以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  请教一个sql 语句  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=178706)

--  作者:ljh29206
--  发布时间:2022/7/17 8:42:00
--  请教一个sql 语句
 表1  计划表

产品号   开始时间             结束时间                 计划数
A1       1-1 00:00          1-1 11:59               50
A1       1-1 12:00          1-1 23:59               60
A2       1-1 00:00          1-1 11:59               70

表2      实绩表
产品号   日期             数量
A1         1-1  6:15    10
A1         1-1  6:16     15
A2         1-1  3:15     20
A1         1-1 15:50   30

求出一个视图表3
产品号   开始时间             结束时间                 计划数         实际数
A1       1-1 00:00          1-1 11:59               50               25
A1       1-1 12:00          1-1 23:59               60               30
A2       1-1 00:00          1-1 11:59               70               20

请问这个视图怎么写,
[此贴子已经被作者于2022/7/18 9:05:53编辑过]

--  作者:有点蓝
--  发布时间:2022/7/17 20:38:00
--  
select a.*,b.实际数总和 from {表1} as a inner join (select 产品号,日期,sum(数量) as 实际数总和 from {表2} group by 产品号,日期) as b on a.产品号 = b.产品号 and a.日期 = b.日期
--  作者:ljh29206
--  发布时间:2022/7/18 9:11:00
--  
 篮板 在请教一下

按时间段汇总

s elect a.*,b.实际数总和 from {表1} as a inner join (s elect 产品号,日期,sum(数量) as 实际数总和 from {表2} group by 产品号 ,日期) as b on a.产品号 = b.产品号 and a.开始时间 <= b.日期 and a.结束时间 > b.日期

我改了,但数据结果(实际数汇总)只有1.

--  作者:有点蓝
--  发布时间:2022/7/18 9:25:00
--  
请上传实例测试
--  作者:kaiyu
--  发布时间:2022/7/18 9:50:00
--  
 se lect 产品号,开始时间,结束时间,计划数,(se lect sum(数量) as 实际数 from 实际表 where 产品号 = a.产品号
 and 日期 between a.开始时间 and a.结束时间) as 实际数 from 计划表 a,试一下行不行

--  作者:ljh29206
--  发布时间:2022/7/18 10:01:00
--  
篮版
请看附件
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.foxdb



--  作者:有点蓝
--  发布时间:2022/7/18 10:16:00
--  
使用的什么数据库?如果是SqlServer,参考5楼用法
--  作者:ljh29206
--  发布时间:2022/7/18 10:41:00
--  
请教2位

语句可以获得汇总数,

但是 日期 比较 只是  年月日的 比较

少了时分秒   ,  这个可以怎么弄呢

--  作者:有点蓝
--  发布时间:2022/7/18 10:43:00
--  
日期正常都是比较到时分秒甚至毫秒的