2014-01-28 4 views
-1

계정 ID, 시간 및 날짜 열이있는 테이블과 accountID, 분 및 날짜 열이있는 두 개의 테이블이 있습니다. 첫 번째 테이블에는 각 날짜마다 1 개의 항목 만 있지만 두 번째 테이블에는 여러 개의 항목이있을 수 있습니다. 내가하고 싶은 일은 accountID가 일치하는 두 테이블에서 모두 선택하고 두 번째 테이블에 각 항목의 분을 더하는 것입니다.여러 테이블에서 선택하고 1 테이블에서 모든 항목 추가하기

사과하는 것이 좋습니다. 1월 1일 및 1월 2일 필요성에 대한 분 결합 할 수 있도록

Account ID | minutes | date 
1   34  2014-1-1 
1   36  2014-1-1 
1   32  2014-1-2 
1   12  2014-1-2 

나는 하루에 1 개 이상의 행을 원하지 않는 :

표 :

Account ID | hours | date 
1    4  2014-1-1 
1    3  2014-1-2 
2    2  2014-1-3 
3    3  2014-1-3 

표 2 다음은 그 예이다 , 이것이 가능한가?

편집 : 나는, 표 1에서 시간과 표 2에서 날짜별로 분의 요약 그래서 1월 1일 분, 70이 될 것이고 시간이 4

+0

사과하지 마십시오. 말이되자. – Strawberry

+0

나는 그것을 어떻게 말로 표현했는지 모릅니다. 그래서 제가 예를 드렸습니다. 그것도 이해가 안되니? – cantread

+0

예제가 불완전하다고 생각합니다. 왜 내가 그렇게 생각할 수 있니? – Strawberry

답변

2

당신이 원하는 것은 GROUP BY 절은 테이블에 조인. 이 경우에는 ID, 날짜 쌍이 필요하기 때문에 이중 그룹이 필요합니다. 그룹화 절을 불평하지 않도록 계정 ID에 고유 한 것으로 표시 했더라도 시간을 합산해야합니다.

SELECT `Account ID`, `date`, SUM(`hours`) AS `hours`, SUM(`minutes`) AS `minutes` 
FROM `table1` 
JOIN `table2` ON (`table1`.`Account ID` = `table2`.`Account ID` AND `table1`.`date` = `table2`.`date`) 
GROUP BY `Account ID`, `date`; 
+0

분이 테이블 2에 있더라도이 작업이 가능합니까? – cantread

+0

예, 'join' 절은'on '조건이 충족되는 테이블을 결합합니다. – Pyrce

+0

결과에 mysql_fetch_array를 사용할 때 부울이기 때문에 오류가 발생합니다. 이유는 무엇입니까? – cantread

1

내가 표에 대해 이해하지 못했다 것을 원한다 서로 다른 AccountID를 갖기 위해 Table2에서 몇 분을 요약하는 것은 간단합니다. 이 같은 기능 합 그룹과 시도 :

select AccountID, sum(minutes) as mins 
from Table2 
group by AccoutID 

이것은 당신이 줄 것이다 :

계정 ID를 | 분

1 | 114

도움이되기를 바랍니다. :) 내가 아니라 귀하의 의견을 이해하면


좋아, 당신은 (계정 ID에 대한 정보없이)이 원하는 :

select sum(hours) as H, sum(minutes) as M, date 
from Table1, Table2 
where Table1.date=Table2.date 
group by date 
+0

날짜로 정리하고 싶습니다 – cantread

+0

날짜를 합하면 첫 번째 표는 무엇입니까? Google은 sum 및 group by에 대한 참조 및 예제를 제공합니다. – Viktor

+0

두 번째 테이블에서 분. 나는 각 날짜로부터 총 분과 시간을 원한다. 그래서 1 월 1 일은 4 시간에서 70 분부터 (36 + 34) – cantread

관련 문제