SQL视图如何将A表两个日期字段与B表日期比对,并统计B表另一个字段的合计值

A表是有日期段数据
B表是一天一条数据
举例:A表若有一条是2017-03-01至2017-03-03,
对应在A表中得出一个新字段就是B表BZSC的合计值7.5+7.5+2=17。

图片说明

sql

2个回答

 select a.id,sum(b.BZSC) from A as a left join B as b on a.start_date < b.dates and a.end_date > b.date where 1

逻辑是这样,不知道写错没,菜鸟一个

xiaozheng719
xiaozheng719 多谢,语句是对的,按照自身实际还要加group by就可以出效果。
2 年多之前 回复

SELECT a.*,(SELECT sum(b.BZSC) FROM B AS b WHERE b.DATES BETWEEN a.START_DATE AND a.END_DATE) AS total
FROM A AS a
不知道你用的什么数据库,注意一下BETWEEN... AND运算符在你的数据库中是否是闭区间,如果不是那就修改成>=和<=。

xiaozheng719
xiaozheng719 谢谢,BETWEEN... AND不适合,只能是大于等于和小于等于。
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问