데이터베이스 개발자 질문과 답변 게시판
데이터베이스 개발/운영 관련 질문과 답변을 올리는 게시판입니다. 궁금하신 내용을 이곳에서 문의하시면 SQLER 분들의 답변을 받으실 수 있습니다. 문의를 하실때에는 최근 작업하신 특이 사항이나, 장애 발생 전 상황을 상세히 올려 주시면 답글을 적어주시는 SQLER분들의 답변이 더 정확할 수 있으니 도움 되시길 바랍니다. 쿼리 문의일 경우, 실제 문제가 재현되는 테이블생성, 샘플데이터 생성 쿼리를 함께 올려 주시면 더 빠르고 정확한 쿼리 문의 응답이 가능합니다.
안녕하세요.
첨부파일을 보시면
품번 A01의 수량이 20개가 필요로하고 수량에 맞는 빠른 LOT를 표기해줘야 하는 쿼리입니다.
재고 테이블에 여러 LOT가 있고
요청 수량에 만족하는 빠른 LOT를 표기해줘야 하는데
어떻게 처리를 해야할지 문의 드려요.
Comment 2
-
손꽁쥐
2016.09.13 11:04
DECLARE @num INT = 20;WITH TEST(품번, LOT, 재고량) AS(SELECT 'A01', '20160910', 10 UNION ALLSELECT 'A01', '20160911', 30 UNION ALLSELECT 'A01', '20160912', 40), CTE AS(SELECT *, ROW_NUMBER() OVER(ORDER BY 품번, LOT) AS 'row' FROM TEST), CTE2 AS(SELECT *FROM CTEWHERE row <=ANY (SELECTCASE WHEN SUM(B.재고량) = @num THEN A.rowWHEN (A.row = 1 AND SUM(B.재고량) > @num) THEN A.rowELSE A.row+1END AS 'row'FROM CTE A, CTE BWHERE A.LOT >= B.LOTGROUP BY A.rowHAVING SUM(B.재고량) <= @numOR (@num > 0 AND A.row = 1 AND SUM(B.재고량) > @num)))SELECT DISTINCT 품번, @num AS 수량, STUFF((SELECT ', ' + LOT FROM CTE2 FOR XML PATH('')), 1, 1, '') AS '불출가능 선입LOT'FROM CTE2 -
닝쿠
2016.09.21 07:50
너무 감사합니다 :)
많은 도움이 됐어요.