특정 사례에서 group by 절을 이해하려고합니다. 각 인보이스에 대해 동일한 금액을 사용해야하는 테이블 두 개에 가입했습니다. 불일치가 없는지 확인하는 쿼리를 작성하십시오. 여기에 테이블, 쿼리 및 결과 :그룹화 및 합계가있는 데이터가 누락되었습니다.
Table A:
Order_Number | Order_Number_Line | Amount
1 | 1 | 80
1 | 2 | 20
1 | 3 | 30
1 | 4 | 70
Table B
Order_Number | Order_Number_Line | Invoice_ID | Invoice_Line_Number | Amount
1 | 1 | 1234 | 1 | 20
1 | 2 | 1234 | 2 | 5
1 | 3 | 1234 | 3 | 10
1 | 4 | 1234 | 4 | 25
1 | 1 | 1234 | 1 | 35
1 | 2 | 1234 | 2 | 7
1 | 3 | 1234 | 3 | 15
1 | 4 | 1234 | 4 | 10
1 | 1 | 1234 | 1 | 25
1 | 2 | 1234 | 2 | 8
1 | 3 | 1234 | 3 | 5
1 | 4 | 1234 | 4 | 35
Select A.Order_Number, A.Amount, B.Amount
From Table_A as A
Left Join (Select Order_Number, Amount From Table_B) as B
On A.Order_Number = B.Order_Number
Order_Number | Amount_Table_A | Amount_Table_B
01 | 80 | 20
01 | 80 | 5
01 | 80 | 10
01 | 80 | 25
01 | 80 | 35
01 | 80 | 7
01 | 80 | 15
01 | 80 | 10
01 | 80 | 25
01 | 80 | 8
01 | 80 | 5
01 | 80 | 35
01 | 20 | 20
01 | 20 | 5
01 | 20 | 10
01 | 20 | 25
01 | 20 | 35
01 | 20 | 7
01 | 20 | 15
01 | 20 | 10
01 | 20 | 25
01 | 20 | 8
01 | 20 | 5
01 | 20 | 35
01 | 30 | 20
01 | 30 | 5
01 | 30 | 10
01 | 30 | 25
01 | 30 | 35
01 | 30 | 7
01 | 30 | 15
01 | 30 | 10
01 | 30 | 25
01 | 30 | 8
01 | 30 | 5
01 | 30 | 35
01 | 70 | 20
01 | 70 | 5
01 | 70 | 10
01 | 70 | 25
01 | 70 | 35
01 | 70 | 7
01 | 70 | 15
01 | 70 | 10
01 | 70 | 25
01 | 70 | 8
01 | 70 | 5
01 | 70 | 35
I에 의해 그룹을 사용하여 시도,하지만 각 테이블에 대한 최초의 양의 기록을 가지고 :
Select A.Order_Number, A.Amount, B.Amount
From Table_A as A
Left Join (Select Order_Number, Amount From Table_B) as B
On A.Order_Number = B.Order_Number
Group By A.Order_Number
Invoice_ID | Amount_Table_A | Amount_Table_B |
01 | 80 | 20 |
나는 각각 합계() 절을 추가하는 시도를 amount 속성을 사용하여 각 반복 레코드의 합계를 얻었습니다.
Select A.Order_Number, sum(A.Amount), sum(B.Amount)
From Table_A as A
Left Join (Select Order_Number, Amount From Table_B) as B
On A.Order_Number = B.Order_Number
Group By A.Order_Number
Invoice_ID | Amount_Table_A | Amount_Table_B |
01 | 2400 | 800 |
어떻게하면 실제 값을 표시하도록이 쿼리를 수정할 수 있습니까 ?? 예상 값 :
Invoice_ID | Amount_Table_A | Amount_Table_B |
01 | 200 | 200 |
이것은 단순화 된 데이터 세트입니다. 실제 테이블에는 백만 건이 넘는 레코드가 있으며 두 테이블 모두에서 Invoice_ID가 같은 합계에 합산되도록해야합니다.
정말 고마워요!
테이블 A와 B 모두에서 처음 10-20 개의 레코드를 게시 할 수 있습니까? 또한 원하는 출력을 10-20 개 레코드로 계산할 수 있습니까? 그러면 필요한 것을 이해하는 것이 더 도움이됩니다. –
데이터 세트에 액세스 할 수 있도록 질문을 편집했습니다. 원하는 출력은 각 테이블에 대해 예상 값 : 200입니다. –