방법 항목은 :
select a.id,(a.col1 + b.col1+c.col1) as col1, (a.col2 + b.col2 + c.col2) as col2, (a.col3 + b.col3 + c.col3) as col3
from
table1 a
left join
table2 b
on a.id = b.id
left join
table3 c
on a.id = c.id;
방법 2 조인 : 노동 조합
select id,sum(col1) col1, sum(col2) col2, sum(col3) col3
from
(
select id,col1,col2,col3
from table1
union all
select id,col1,col2,col3
from table2
union all
select id,col1,col2,col3
from table3
) t
group by id
당신이 어떤 다른 기준이 있으면 알려주세요.
방법 3 : 필드의 다른 번호를 가지고 있으므로 NULL
또는
SELECT
[MID],
SUM([KEVAT 201501-04]) AS 'KEVAT 201501-04',
SUM([KESA 201504-06]) AS 'KESA 201504-06',
SUM([SYKSY 201507-09]) AS 'SYKSY 201507-09',
SUM([TALVI 201510-12]) AS 'TALVI 201510-12',
SUM([KEVAT 201601-04]) AS 'KEVAT 201601-04',
SUM([KESA 201604-06]) AS 'KESA 201604-06',
SUM([SYKSY 201607-09]) AS 'SYKSY 201607-09',
SUM([TALVI 201610-12]) AS 'TALVI 201610-12'
FROM
(
SELECT * FROM TABLE1
UNION ALL
SELECT [MID]
,0 AS 'KEVAT 201501-04'
,0 AS 'KESA 201504-06'
,0 AS 'SYKSY 201507-09'
,0 AS 'TALVI 201510-12'
,[KEVAT 201601-04]
,[KESA 201604-06]
,[SYKSY 201607-09]
,[TALVI 201610-12]
FROM TABLE2
UNION ALL
SELECT [MID]
,[KEVAT 201501-04]
,[KESA 201504-06]
,[SYKSY 201507-09]
,[TALVI 201510-12]
,0 AS 'KEVAT 201601-04'
,0 AS 'KESA 201604-06'
,0 AS 'SYKSY 201607-09'
,0 AS 'TALVI 201610-12'
FROM TABLE3
) a
GROUP BY [MID]
사용해보십시오 사용 결과 [여기] (https://i.stack.imgur.com/EYSek.png)를 볼 수 있습니다. 테이블은 나란히 배치됩니다. 나는 그들이 일치 할 때 대응하는 숫자가 함께 요약 될 것을 원합니다. 이제 그들은 모든 테이블을 나란히 놓습니다. – hhh
나는 합계에 대한 쿼리를 편집했으며 대체 솔루션을 언급했습니다. 그 내용을 확인하고 다른 것이 필요한지 알려주십시오. –
두 번째 방법을 시도했는데'UNION, INTERSECT 또는 EXCEPT 연산자를 사용하여 결합 된 모든 쿼리는 대상 목록에 동일한 수의 표현식을 가져야합니다. '오류가 발생했습니다. 이것은 테이블의 열 수가 서로 다르기 때문에 분명히 나타납니다. 첫 번째 테이블에는 9 개의 열이 있고 두 번째 테이블과 세 번째 테이블에는 5 개의 열이 있음을 알 수 있습니다. 각 테이블에는 키로 작동하는 동일한 ID 열이 있지만 각 테이블의 행 수는 다릅니다. 첫 번째 테이블에는 가능한 모든 ID가 있습니다. – hhh