2013-03-18 1 views
-1

한 고객이 만든 모든 구매를 합산 한 보고서를 실행하는 데 필요한 저장소 유형 데이터베이스가 있습니다.MySQL sum 및 Group By 두 번째 테이블의 정보를 식별하는 데이터

저장소에 대한이 데이터베이스의 특수한 요구 때문에 사용자 ID는 compID와 userId의 두 부분으로 저장됩니다. 예를 들어 사용자는 'ABCD'라는 ID를 가질 수 있습니다. 'AB'는 그들이 일하는 회사를 의미하고 'CD'는 특정 ID이지만 'AB'작성과 일치한다는 사실을 계속 참고합니다 다른 'CD'사용자 값의 고유 한 값입니다. (이 일을하는 이상한 방법입니다 알아요,하지만 최대한 많은 슬롯을 사용하면서 가능한 한 사용자 ID가 부족한 것이 필요했습니다.)

어쨌든 내 문제는 한 사용자가 내 구매를 합산하는 쿼리 사용자 이름과 같은 두 번째 테이블에서 추가 정보를 가져 오는 방법을 찾을 수 없습니다.

다음 표를 참조하십시오. 같은

f_user 테이블 등등 아이디, compID, 이름, 연락처 등 사용자에 대한 깊이 정보에있는 구매의 사용자 ID (및 compID), 및 값으로

f_purchases 테이블에는 데이터를 각 판매 .

난 그냥 원시 데이터이 쿼리가 작동 선택

SELECT f_purchases.compID, f_purchases.userID, sum(f_purchases.amount) as Total FROM f_purchases GROUP BY f_purchases.compID, f_purchases.userID 

하지만 내가 사용하려고 할 때 가입하거나 여러 테이블 쿼리가 나는 등의 이름으로 f_user에서 정보를 식별 가져올 수있는 방법을 찾을 수 없습니다를 . 나는 내 다른 생각을 내가 어떻게 든 ID의 두 부분으로 가입 연결을 사용할 수 있었다

WHERE f_purchases.compID=f_user.compID AND f_purchases.userID=f_user.userID 

같은이 있다면 내가 f_user.name을 얻을 수있을 것이라고 생각하지만 어디서부터 시작 몰랐어요 그것으로. 어떤 도움을 많이 주셨습니다.

+0

그래서 WHERE 절을 추가 할 때 무엇을 얻을 수 있습니까? – Melanie

+0

@Melanie 그걸로 다시 돌아가고 제가 잘못하고 있었던 것을 모르지만 지금은 효과가있었습니다. 초기 질문은 죄송합니다. – Scott

답변

0

내가 전에 뭔가 이상한 걸 알았지 만, 한번 더 시도한 후에는 모든 것이 정확하게 합쳐졌습니다. 다음은 효과가 있습니다.

SELECT f_user.first, f_purchases.compID, f_purchases.userID, sum(f_purchases.amount) AS Total 
FROM f_purchases, f_user 
WHERE f_purchases.compID = f_user.compID 
AND f_purchases.userID = f_user.userID 
GROUP BY f_purchases.compID, f_purchases.userID 

죄송합니다.