SQL:根据条件限制连接中的记录

时间:2017-09-20 23:00:08

标签: mysql sql sql-server

更新了问题

我有以下两种表格: 表格1: 标题| weekend_date |

表2: 标题| dateid | numerical_column

在'title'列上使用内连接我想在数字列中提取一个值的总和,其中包含在表1的weekend_dt之前7天的行。我可以加入查询但是仍然计算总和。

这是我的疑问:

select * 
  from table1 
 inner join table2 
    on table1.title=table2.title 
 where table2.date BETWEEN table1.wknd_dt - '7' and table1.wknd_dt

它产生以下输出:

title | dateid| numerical_column
title1| dateid| value1
title1| dateid| value2
title1| dateid| value3
title2| dateid|     value4
title2| dateid|     value5

所以目前,由于内部联接,我在标题上获得了很多匹配,因此有多个记录被拉出

我想要的是:

title | dateid|numerical_column
title1| dateid|SUM(value1+value2+value3)
title2| dateid| SUM(value4+value5)

我该怎么做?

1 个答案:

答案 0 :(得分:2)

使用SUM()和GROUP BY

SELECT t1.title,
       t1.dateid,
       SUM(t2.numerical_column) 
  FROM table1 t1
 INNER JOIN table2 t2
    ON t1.title = t2.title 
 WHERE t2.date BETWEEN t1.wknd_dt - 7 AND t1.wknd_dt
 GROUP BY t1.title,
          t1.dateid