2017-09-20 72 views
1

更新問題SQL:限制在記錄聯接根據病情

我有以下形式的兩個表:表1 : 標題| weekend_date |

表2: 標題| dateid | numeric_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) 

我該怎麼做?

+0

凡'dateid'哪裏來的? – Uueerdo

+0

我的不好。 table2:title |日期| numeric_column實際上是table2:title | ** dateid ** | numeric_column – user2092493

+0

我已更新問題 – user2092493

回答

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 
+0

我已更新該問題 – user2092493