SELECT
             WMS.COMPANYID        /*회사코드*/
            ,WMS.DIVISIONID       /*사업장코드*/
            ,WMS.SOID             /*수주번호*/
            ,WMS.CUSTOMERID       /*거래처코드*/
            ,WMC.CUSTOMERNAME     /*거래처명*/
            ,WMS.ORDERDATE        /*수주일자*/
            ,WMS.DELIVERYDATE     /*납기일자*/
            ,WML.PRICE         /*수주금액*/
            ,WML.SOLINENO         /*행번*/
            ,WML.ITEMID           /*아이템코드*/
            ,WMI.ITEMNAME         /*아이템명*/
            ,WML.ORDERQTY         /*수주수량*/
            ,WML.SHIPQTY          /*출고수량*/
            ,(WML.ORDERQTY - WML.SHIPQTY) AS NOTSHIPQTY /*미출고수량*/
            ,WML.SHIPSTATE        /*출고상태*/
            ,WMS.REMARK           /*설명*/
            ,WMS.ISVALID
            FROM      
			WM_SALESORDER     WMS
            INNER JOIN WM_SALESORDERLINE WML        ON WMS.SOID       = WML.SOID        AND WML.ISVALID = 'Y'
            LEFT  JOIN WM_CUSTOMERINFO   WMC        ON WMS.CUSTOMERID = WMC.CUSTOMERID  AND WMS.COMPANYID = WMC.COMPANYID  AND WMS.DIVISIONID = WMC.DIVISIONID
            LEFT  JOIN WM_ITEMINFO       WMI        ON WML.ITEMID     = WMI.ITEMID
            WHERE
            WMS.COMPANYID = 1000
            AND WMS.DIVISIONID = 1000
			AND WMS.ORDERDATE BETWEEN '2021-01-01' AND '2021-01-30'
			AND WMS.SOID LIKE '%SO%'

위 쿼리문에서 주의 깊게 봐야될 조건은 BETWEEN 조건 AND 조건 과, LIKE '%' 이다.

BETWEEN은 어떤 값보다는 작고 어떤 값보다는 큰 조건을 만들 때 편리하게 사용할 수 있다.

어떤 단어를 검색할 때 특정 키워드만 사용하고 싶으면 %를 활용하면 된다. 

'-' : 글자숫자를 정해줌(EX 컬럼명 LIKE '홍_동')

'%' : 글자숫자를 정해주지않음(EX 컬럼명 LIKE '홍%')

SELECT * FROM WM_SALESORDER WHERE SOID = 'SO2011120002'

BEGIN TRAN
DELETE FROM WM_SALESORDER WHERE SOID = 'SO2011120002'
ROLLBACK TRAN

SELECT * FROM WM_SALESORDER WHERE SOID = 'SO2011120002'

위 쿼리문은 트랜잭션을 실험해보기 위함이다. 

BEGIN TRAN이 실행된 뒤 다음에 실행되는 쿼리문을 ROLLBACK TRAN을 이용하여 되돌린 후 다시 SELECT문을

사용하여 DELETE되기 전으로 되돌아 갔는지 확인하였고 결과는 ROLLBACK이 성공적으로 이루어 졌다.

 

INNER JOIN LEFT OR RIGHT OUTER JOIN

https://m.blog.naver.com/PostView.nhn?blogId=wideeyed&logNo=221435077767&proxyReferer=https:%2F%2Fwww.google.com%2F

 

[MSSQL] 조인(Inner Join, Outer Join)

조인(Join)이란 2개 이상 테이블을 서로 엮어 조회하는 것이다.​Inner Join은 서로 매칭되는 것만 엮어...

blog.naver.com

 

교집합(JOIN, INNER JOIN)
합집합

 

LEFT OUTER JOIN 과 LEFT JOIN은 같고 위에 WHERE 절이 빠지게 되면 교집합 부분도 포함하게 된다.

+ Recent posts