그룹별 순번추출 0 2 655

by 날아라! [MySQL] [2018.08.24 21:50:43]


20180824_205829.png (3,900Bytes)

안녕하세요..모르는게 왜이리 많은지. 질문이 참 많네요.

 

아래 첨부이미지를 보면 번호와 코드가 있습니다.

코드는 같은값들이 존재합니다.

원하는결과값은 두번째 필드의 번호처럼 그룹별로 증가되게 하고싶은데 무엇을 잘못했는지 자꾸 첫번째 번호필드처럼 나오네요. 

 

1. 전체리스트 출력

SELECT *
   FROM item AS t1, s_order AS t2
 WHERE t1.invoice_no = t2.invoice_no
    AND t2.ship_req_num = 'ABCD'    <--- 전체리스트중 나와야되는 고유값

 

2. 

SELECT *
    FROM item AS t1, s_order AS t2
   WHERE t1.invoice_no = t2.invoice_no
       and t2.ship_req_num = 'ABCD'
         and t1.invoice_no = '코드값'

 

위처럼 전체리스트쿼리 안에 2번 쿼리가 들어가있는 형태인데요. 잘못한것같긴한데 어디서 잘못된거지 도통 알수가없네요.

조언좀 부탁드립니다.
by 야신 [2018.08.25 09:04:29]

 

select deptno,empno, ename, emp.SAL 
,IF(@p_col = deptno, @p_sal := @p_sal:= @p_sal + sal 
, @p_sal := sal 
) AS aggr_sal -- 그룹별 누적 
,IF(@p_col = deptno, @rank := @rank +1 
, @rank := 1 + least(0,@p_col := deptno) 
) AS rank -- 그룹RANK 
,@p_tot_accum_sal := @p_tot_accum_sal + sal AS tot_accum_sal -- 전체누적 
from emp 
, ( select @rank := 0) x1 
, ( select @p_col := '00') x2 
, ( select @p_accm_sal := 0) x3 
, ( select @p_tot_accum_sal := 0) x4 
order by deptno, sal

 

참고해서 골라 쓰세요


by 마농 [2018.08.27 11:05:16]
SELECT t2.ship_req_num
     , t1.invoice_no
     , @rn := CASE WHEN @invoice_no = t1.invoice_no THEN @rn + 1 ELSE 1 END rn
     , @invoice_no := invoice_no
  FROM item t1
     , s_order t2
     , (SELECT @invoice_no := '', @rn := 0) a
 WHERE t1.invoice_no = t2.invoice_no
   AND t2.ship_req_num = 'ABCD'
-- AND t1.invoice_no   = '코드값'
 ORDER BY t1.invoice_no
;

 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입