[MSSQL SERVER 기본에서 실무까지] 임시테이블 3-16
2021. 12. 17. 12:36ㆍ개발/MSSQL
- 임시테이블이란?
- 임시적으로테이블을 생성하고 더 이상 필요 없을 경우 자동으로 제거되는 테이블
- 임시적으로테이블을 생성하고 더 이상 필요 없을 경우 자동으로 제거되는 테이블
- 특징
- 동일한 이름으로 생성된 임시테이블도 각각 독립적으로 생성되기 때문에 동시에 다른 작업자와 동일한 작업을 수행해도 데이터가 서로 충돌하지 않는다.
- 동일한 이름으로 생성된 임시테이블도 각각 독립적으로 생성되기 때문에 동시에 다른 작업자와 동일한 작업을 수행해도 데이터가 서로 충돌하지 않는다.
- 생성
- #TableName 일반 임시 테이블 다른사용자가 조회 또는 입력 불가능
- ##TableName 다른 사용자가 조회 또는 입력이 가능 (글로벌 임시테이블 이라고도 함)
- CODE
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
CREATE TABLE T매출 (
일자 NVARCHAR(08)
,제품 NVARCHAR(30)
,수량 NUMERIC(18,0) DEFAULT 0 NULL)
INSERT INTO T매출 (일자, 제품, 수량)
VALUES ('20200101', 'A3', 10)
,('20200101', 'A2', 20)
,('20200102', 'A1', 30)
,('20200301', 'A3', 40)
CREATE TABLE T매입 (
일자 NVARCHAR(08)
,제품 NVARCHAR(30)
,수량 NUMERIC(18,0) DEFAULT 0 NULL)
INSERT INTO T매입 (일자, 제품, 수량)
VALUES ('20200101', 'A1', 100)
,('20200101', 'A1', 200)
,('20200102', 'A2', 300)
,('20200301', 'A3', 400)
SELECT * FROM T매출 SELECT * FROM T매입 CREATE TABLE #임시1(
년월 NVARCHAR(08)
,제품 NVARCHAR(30)
,매입수량 NUMERIC(18,0) DEFAULT 0 NOT NULL --기본값 0설정
,매출수량 NUMERIC(18,0) DEFAULT 0 NOT NULL --기본값 0설정
)
INSERT INTO #임시1 (년월, 제품, 매입수량)
SELECT LEFT(A.일자, 6)
,A.제품
,매입수량 = SUM(A.수량)
FROM T매입 A
GROUP BY LEFT(A.일자, 6), A.제품
INSERT INTO #임시1 (년월, 제품, 매출수량)
SELECT LEFT(A.일자, 6)
,A.제품
,매출수량 = SUM(A.수량)
FROM T매출 A
GROUP BY LEFT(A.일자, 6), A.제품
SELECT A.년월, A.제품
, 매입수량 = SUM(A.매입수량)
, 매출수량 = SUM(A.매출수량)
FROM #임시1 A
GROUP BY A.년월, A.제품
ORDER BY A.년월, A.제품
|
cs |
'개발 > MSSQL' 카테고리의 다른 글
[MSSQL SERVER 기본에서 실무까지] 오류 및 처리건수 시스템변수 3-11 (0) | 2021.12.20 |
---|---|
MSSQL 명령어 정리 (0) | 2021.12.17 |
[MSSQL SEVER 기본에서 실무까지] Transaction 및 LOCK 관리 3-12~13 (0) | 2021.12.17 |
[MSSQL SERVER 기본에서 실무까지] 외래키 (Foreign Key) 3-14 (0) | 2021.12.17 |
[MSSQL SERVER 기본에서 실무까지] 3-15 (0) | 2021.12.17 |