[MSSQL] 전일, 전주, 전월, 전분기, 전반기, 전년도 구하기

MSSQL 2013. 8. 7. 15:59

01. 일간


입력값 : 20130228


전일 : SELECT CONVERT(VARCHAR(8), DATEADD(D, -1, CONVERT(DATETIME2, '20130228', 112)), 112)




02. 주간 


입력값 : 20130228


현재주차 : SELECT CONVERT(VARCHAR(4), DATEPART(YYYY, '20130228')) + CONVERT(VARCHAR(2), REPLICATE('0', 2 - LEN(DATEPART(WW, '20130228'))) + CAST(DATEPART(WW, '20130228') AS VARCHAR))


지난주차 : SELECT CONVERT(VARCHAR(4), DATEADD(WW, -1, '20130228'), 112) + CONVERT(VARCHAR(2), REPLICATE('0', 2 - LEN(DATEPART(WW, DATEADD(WW, -1, '20130228')))) + CAST(DATEPART(WW, DATEADD(WW, -1, '20130228')) AS VARCHAR))




03. 월간


입력값 : 201301


지난 월 : SELECT CONVERT(VARCHAR(6), DATEADD(M, -1, '201302' + '01'), 112)





04. 분기


입력값 : 201304


현재 분기 : SELECT CONVERT(VARCHAR(4), DATEPART(YYYY, '201304' + '01')) + CONVERT(VARCHAR(2), REPLICATE('0', 2 - LEN(DATEPART(q, CAST('201304' +  '01' AS DATE)))) + CAST(DATEPART(q, CAST('201304' +  '01' AS DATE)) AS VARCHAR))


 전분기 : SELECT CONVERT(VARCHAR(4), DATEADD(M, -1, '201304' + '01'), 112) + CONVERT(VARCHAR(2), REPLICATE('0', 2 - LEN(DATEPART(q, DATEADD(MONTH, -1, CAST('201304' +  '01' AS DATE))))) + CAST(DATEPART(q, DATEADD(MONTH, -1, CAST('201304' +  '01' AS DATE))) AS VARCHAR))




05. 반기 


입력값 : 201307


현재 반기 :SELECT CONVERT(VARCHAR(4), DATEPART(YYYY, '201307' + '01')) + CASE WHEN DATEPART(MONTH, '201307' + '01') BETWEEN 1 AND 6 THEN '01' ELSE '02' END


지난 반기 : SELECT CONVERT(VARCHAR(4), DATEADD(M, -1, '201307' + '01'), 112) + CASE WHEN DATEPART(MONTH, DATEADD(MONTH, -1, CAST('201307' +  '01' AS DATE))) BETWEEN 1 AND 6 THEN '01' ELSE '02' END




06. 년도

현재년도
SELECT CONVERT(VARCHAR(4), DATEPART(YYYY, '2013' + '0101'))


전년도
SELECT CONVERT(VARCHAR(4), DATEADD(YYYY, -1, '2013' + '0101'), 112)









[MSSQL] *.sql 파일 실행하기

MSSQL 2013. 4. 23. 21:08

mssql> source 파일경로

 

예)

mssql > source c:\mytest.sql;


[MSSQL] 다른 DB에 있는 테이블 복사하기

MSSQL 2012. 11. 1. 15:14

01. 퀴리는아래와 같다.


SELECT * INTO TEST2 FROM EISM.dbo.TEST




02. Microsft SQL Server Management Studio에서 복사할 테이블을 확인하고 위의 퀴리를 입력한다.

 ① 복산한 테이블을 저장할 DB를 선택한다.

 ② 테이블 명을 확인한다.

 ③ 쿼리 입력창에 쿼리를 입력하고 실행한다.




03. 새로고침을 클릭하면 'TEST2' 테이블이 생성되었음을 확인할 수 있다.


[MSSQL] 테이블 복사하기

MSSQL 2012. 11. 1. 15:07

01. 퀴리는아래와 같다.


SELECT * INTO TEST1 FROM TEST




02. Microsft SQL Server Management Studio에서 복사할 테이블을 확인하고 위의 퀴리를 입력한다.

 ① 테이블 명을 확인한다.

 ② 쿼리 입력창에 쿼리를 입력하고 실행한다.




03. 새로고침을 클릭하면 'TEST1' 테이블이 생성되었음을 확인할 수 있다.

  • 예나 2012.12.12 15:01 ADDR 수정/삭제 답글

    오타있네요~
    form이 아니라 from이죠^^;
    쿼리문 잘 보고 가요~~

[MSSQL] 파일 그룹(Filegroup)

MSSQL 2012. 8. 21. 19:47

※ 파일 그룹(Filegroup)

 -. 데이터 파일들을 관리상의 목적으로 분류하기 위해 파일 그룹의 이름을 지정할 수 있다. 그래야 파일 그룹별로 백업이나 복구를
    할 수 있으며 데이터를 분산 배치하여 질의 성능을 향상시킬 수 있다.
 -. SQL Server의 모든 데이터베이스는 기본 파일 그룹을 가지고 있다.
 -. 파일 그룹의 이름은 별도로 변경하지 않으면 PRIMARY가 된다.
 -. 파일 글부에는 기본데이터 파일과 부가 데이터 파일들을 저장할 수 있다.
 -. 기본 파일 글부 이외에 사용자가 정의한 파일 그룹을 지정하여 부가 파일들을 분류 · 저장할 수 있다.
 -. 사용자 정의 파일 그룹은 데이터를 분산하거나 재배치하는 등의 관리상의 목적으로 사용되지만
    기본 데이터 파일은 반드시 기본 파일 그룹에 포함된다.
 -. 데이터베이스의 모든 데이터 파일은 파일 그룹 중 하나에 저장된다.
 -. 사용자 정의 팡리 그룹은 데이터베이스를 생성하는 시점에 함꼐 생성할 수 있으며 필요에 따라 생성된 데이터베이스에 파일을
    추가할 때도 생성할 수 있다. 하지만 특정한 파일 그룹에 지정된 파일을 다른 파일 그룹으로 이동할 수는 없다. 파일을 오로지
    한개의 파일 그룹에만 속한다.

①②③

① Management Studio를 사용한 파일 그룹(Filegroup)

01. Management Studio를 실행한 후 데이터베이슬르 마우스 오른쪽 버튼으로 눌러 선택한 후 나오는 메뉴에서 '새 데이터베이스'를 선택한다.



02. '새 데이터베이스' 창이 나타나면 데이터베이스 이름에 'SampleDB'를 입력한다. 그리고 [추가]를 눌러 사용자 데이터베이스 파일 두 개를 생성하고 논리적 이름으로 각 'SampleDB_MFG_Data1', 'SampleDB_MFG_Data2'를 입력한다.



03. 왼쪽 위에 있는 '파일 그룹'을 선택한 후 [추가]를 눌러 새 파일 그룹을 생성합니다. 데이터베이스 이름에 'MyNewFileGroup'을 입력한 후 다시 '일반'을 선택한다.



04. 'SampleDB_MFG_Data1', 'SampleDB_MFG_Data2'의 '파일 그룹'항목을 선택한 후 03번 과정에서 생성한 'MyNewFileGroup'을 선택한다.



05. 왼쪽 위에서 '데이터베이스'를 마우스 우클릭 후 나오는 메뉴에서 '새로 고침'을 선택하면 SampleDB 데이터베이스가 생성된 것을 확인할 수 있다.



② T-SQL을 사용한 파일 그룹(Filegroup)


01. 프로그램 왼쪽 위에 있는 [새 쿼리]를 눌러 질의 창이 나타나게 한 후 다음과 같은 T-SQL 구문을 입력하고 [실행]을 누른다.

CREATE DATABASE SampleDB
ON PRIMARY    /* 기본 파일 그룹(Primary Filegroup) */
    (NAME = 'SampleDB_Primary',
        FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\SampleDB_Prm.mdf',
        SIZE = 4MB,
        MAXSIZE = 10MB,
        FILEGROWTH = 1MB),
       
FILEGROUP MyNewFileGroup    /* 사용자 정의 파일 그룹(MyNewFileGroup Filegroup) */
    (NAME = 'SampleDB_MFG_Data1',
        FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\SampleDB_FG1.ndf',
        SIZE = 1MB,
        MAXSIZE = 10MB,
        FILEGROWTH = 1MB),
    (NAME = 'SampleDB_MFG_Data2',
        FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\SampleDB_FG2.ndf',
        SIZE = 1MB,
        MAXSIZE = 10MB,
        FILEGROWTH = 1MB)

LOG ON    /* 트랜잭션 로그 파일(Transction Log File) */
    (NAME = 'SampleDB_log',
        FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\SampleDB_log.ldf',
        SIZE = 1MB,
        MAXSIZE = 10MB,
        FILEGROWTH = 1MB);




02. '명령이 완료되었습니다.'라는 메시자가 나타나면 데이터베이스가 생성된 것이다. 왼쪽 위에서 '데이터베이스'를 마우스 우클릭 후 나오는 메뉴에서 '새로 고침'을 선택하면 SampleDB 데이터베이스가 생성된 것을 확인할 수 있다.



03. 'SampleDB'를 마우스 오른쪽 버튼으로 눌러 선택한 후 나오는 메뉴에서 '속성'을 선택한다. 그리고 데이터베이스 속성 창의 왼쪽 위에서 '파일'을 선택하면 T-SQL 구문에서 입력한 파일 그룹이 올바르게 설정되었는지 확인할 수 있다.