如何将表与条件和合并?SQL

如何将表与条件和合并?SQL,sql,Sql,我想把表1和表2合并成表3。我需要对表1中的行进行分组,以匹配表2的格式,同时对每个范围的c1、c2和c3求和 我对JOIN的理解很弱,非常感谢您的帮助 表1: ID begin end c1 c2 c3 78JUE 20 24 1 0 0 78JUE 24 28 2 1 0 78JUE 28 32 1 1 0 78JUE 32 36 0

我想把表1和表2合并成表3。我需要对表1中的行进行分组,以匹配表2的格式,同时对每个范围的c1、c2和c3求和

我对JOIN的理解很弱,非常感谢您的帮助

表1:

ID     begin    end    c1   c2   c3
78JUE  20       24     1    0    0
78JUE  24       28     2    1    0
78JUE  28       32     1    1    0
78JUE  32       36     0    0    0
78JUE  36       40     0    0    0
78JUE  40       44     4    1    1
78JUE  44       48     3    1    1
78JUE  48       52     1    2    0
78JUE  52       56     0    1    1
78JUE  56       60     2    0    1
78JUE  60       64     1    1    0
78JUE  64       68     0    2    1
表2:

ID     begin  end
78JUE  20     40
78JUE  40     52
78JUE  52     60
78JUE  60     68
表3:

ID     begin  end  c1  c2  c3
78JUE  20     40   4   2   0
78JUE  40     52   8   4   2
78JUE  52     60   2   1   2
78JUE  60     68   1   3   1
您好,这应该可以:

SELECT
 T1.ID
,T1.begin
,T1.end
,SELECT(SUM(T2.c1) FROM Table2 T2 WHERE T2.ID = T1.ID AND T2.begin >= T1.begin AND T2.end <= T1.end) c1
,SELECT(SUM(T2.c2) FROM Table2 T2 WHERE T2.ID = T1.ID AND T2.begin >= T1.begin AND T2.end <= T1.end) c2
,SELECT(SUM(T2.c3) FROM Table2 T2 WHERE T2.ID = T1.ID AND T2.begin >= T1.begin AND T2.end <= T1.end) c3
FROM Table1 T1
选择
T1.ID
,T1.开始
,T1.end

,选择(和(T2.c1)从表2中T2,其中T2.ID=T1.ID和T2.begin>=T1.begin和T2.end=T1.begin和T2.end=T1.begin和T2.end行
51.85-55.77
?是否在
40-52
范围内和
52-60
范围内计数两次?我的假设是上限互斥的,这就是它们的含义应该是(一方面,对于更精确的值数据,很难使用包含上限-我们不知道精度限制)c1、c2和c3列中的值与开始-结束列无关。编辑-I将表中的开始-结束列四舍五入1@SC2018-呃,什么?这对我们来说是相当重要的信息。首先,我对这些类型查询的默认假设是,只应考虑下限起始值,但这样做会产生与您提供的示例结果不同的计算。