반응형
블로그 이미지
취미생활 추천받아여~       게임이든, 여가생활이든 :D

카테고리

분류 전체보기 (615)
☆잡동사니 (501)
☆코딩개발 (76)
☆영어공부 (38)
★★★★★★ (0)
Total
Today
Yesterday


반응형

<소수점>

내림 : truncate(구하고자하는 값, 내림하고자하는 값)

올림 : cei;() 위와 동일

반올림 : round() 위와 동일

 

<정수>

백담위 반올림 예제) round(구하고자하는 값/1000, 0) * 1000

마이 플랫폼에서는 정수자체를 반올림이나 내림 올림 기능을 하는 API는 없으므로

소수점 반올림을 이용하셔야됩니다 내림 올림 마찬가지

반응형
Posted by 과라나
, |


반응형

**변수사용

로컬변수의 특징


1. @
라는 첨자를 가진다
2.
선언된 로컬 변수는 현제 커넥션에서 같은 배치내에서만 사용
3.
값을 초기화하기 위해 set, select문 사용

 

DECLARE @YMD DATETIME //선언
SET @YMD=GETDATE()  //
초기화
SELECT @YMD


DECLARE @SAL INT
SET @SAL=5000
SELECT ENAME, SAL FROM EMP
WHERE SAL>@SAL

 

DECLARE @SAL INT
SELECT @SAL=AVG(SAL) FROM EMP
SELECT @SAL

 

 

**조건문

 

<IF>

IF 조건 
      
실행문
ELSE
      
실행문

 


DECLARE @I INT
SET @I=200
IF @I <100
 PRINT '@I
100보다 작습니다.'
ELSE 
 PRINT '@I
100이상입니다.'

---------------------------

DECLARE @SAL INT
SET @SAL=2000
IF @SAL >=3000
         BEGIN    //
실행문이 2개 이상일때는 BEGIN END로 묶어주어야함..


         PRINT '3000
이상인 사원몰록'
         SELECT * FROM EMP
         WHERE SAL>=3000
       

          END
ELSE 
        PRINT '3000
미만인 사원목록'
        SELECT * FROM EMP
        WHERE SAL<3000

 

 


<CASE
(END로 끝남. JOIN한 것과 같은 결과)>

 

SELECT EMPNO, ENAME,DEPTNO,
            (CASE 
  WHEN DEPTNO=10 THEN '
전산실'
  WHEN DEPTNO=10 THEN '
총무부'
  WHEN DEPTNO=10 THEN '
영업부'
 ELSE
   '
기타'
 END) AS
부서명
FROM EMP

 

 

**반복문
DECLARE @A INT
SET @A=1

WHILE @A <100    // BEGIN .. END를 쓰지 않으면 무한루프에 빠짐~!!
BEGIN
SELECT @A
SET @A=@A+1
END

 

 


**저장 프로시져(STRORED PROCEDURE)

--서버에 컴파일 시켜 저장시켜놓은 SQL코드의 집합

 

시스템 저장프로시져(SP_, MASTER DB)
확장 저장 프로시져(XP_, MASTER DB)
사용자 저장 프로시져

 

--장점: VIEW의 장점 +a

 

 -처리속도가 빠르다
 -
네트워크 트래픽을 줄인다
 -
확장이 용이하다.

 

 

 

감사합니다.

출처

반응형
Posted by 과라나
, |


반응형

MSSQL에서 사용 가능한 방법입니다.

 

--SELECT * FROM HR.PAYLIST
--SELECT * FROM HR.PAYLISTSUB
--USE ISC_ERP_20140423_KGS

 

 

SELECT BASEDT, EMPLOYEENO, SUM(A.PAY1)AS A , SUM(A.PAY2) AS B
FROM (
SELECT A.BASEDT, B.EMPLOYEENO, SUM(AMOUNT) AS PAY1, SUM(0) AS PAY2 FROM HR.PAYLIST A
LEFT OUTER JOIN HR.PAYLISTSUB B ON A.GUBUN=B.GUBUN AND A.PAYLISTNO=B.PAYLISTNO
WHERE A.BASEDT BETWEEN '201303' AND '201401'
AND B.EMPLOYEENO='2073006'
AND B.PAYITEMCD LIKE 'HR025%'
GROUP BY A.BASEDT, B.EMPLOYEENO

UNION ALL

SELECT A.BASEDT, B.EMPLOYEENO, SUM(0) AS PAY1 , SUM(AMOUNT) AS PAY2 FROM HR.PAYLIST A
LEFT OUTER JOIN HR.PAYLISTSUB B ON A.GUBUN=B.GUBUN AND A.PAYLISTNO=B.PAYLISTNO
WHERE A.BASEDT BETWEEN '201303' AND '201401'
AND B.EMPLOYEENO='2073006'
AND B.PAYITEMCD LIKE 'HR026%'
GROUP BY A.BASEDT, B.EMPLOYEENO
) AS A
GROUP BY EMPLOYEENO, BASEDT

 

하나의 컬럼에 있는 값들을

두가지 조건으로 분리해서 서로 다른 컬럼으로 SELECT 하고싶을때 이 방법을 사용하면 굳굳!!! :D

 

이렇게 UNION ALL을 써서 FROM절로 싸잡은 다음에 뽑으면 됩니다. 그냥 UNION만 썼을때는 PAY1과 PAY2가 합쳐지지가 않기 때문에 FROM절로 싸잡아서 SUM함수를 사용하여 합산한 것입니다. 후후. 정말 기막히 쿼리가 탄생하게 되었습니다. 올레~!

반응형
Posted by 과라나
, |

최근에 올라온 글

04-25 22:37

글 보관함