by 안녕하세요 [SQL Query] db2 query order by union all [2021.10.25 19:42:01]
union all 과 order by를 같이 사용하고자 할 때는 order by를 서브쿼리 안에 넣으면 된다고 인터넷에 많이 나옵니다.
그런데 이상하게 제 쿼리에서는 서브쿼리 자체에서는 order by가 잘 되는데 쿼리 전체를 돌리면 순서가 뒤죽박죽 됩니다.
SELECT ACC, ACCN, DTL, GNRL, STAM FROM ( SELECT A.ACC, B.ACCN, B.DTL, SUM(A.GNRL), SUM(A.STAM FROM DNU A LEFT OUTER JOIN DNU2 B ON A.ACC=B.ACC AND A.DTL=B.DTL WHERE A.BSY='202108' GROUP BY A.ACC, B.ACCN, B.DTL ORDER BY A.ACC) FR UNION ALL SELECT ~~~~ FROM ~~~~
FR 쿼리는 순서대로 잘나오는데
UNION ALL 위의 쿼리전체 쿼리로 돌리면 순서가 뒤죽박죽입니다..
왜 그럴까요?ㅜ
DB2 사용하고 있습니다
인라인뷰 안에서의 정렬은 무의미하다고 판단되어
정렬이 무시되는 경우가 있습니다. (MySQL)
SELECT 1 gb , a.acc, b.accn, b.dtl , SUM(a.gnrl) gnrl , SUM(a.stam) stam FROM dnu a LEFT OUTER JOIN dnu2 b ON a.acc = b.acc AND a.dtl = b.dtl WHERE a.bsy = '202108' GROUP BY a.acc, b.accn, b.dtl UNION ALL SELECT 2 gb , '합계', null, null , SUM(a.gnrl) gnrl , SUM(a.stam) stam FROM dnu a LEFT OUTER JOIN dnu2 b ON a.acc = b.acc AND a.dtl = b.dtl WHERE a.bsy = '202108' ORDER BY 1, 2 ;