서브쿼리 order by... ㅠㅠ 0 5 970

by 지메이비 MSSQL [2022.07.05 15:22:07]


if(@A_PhysicalName='middleName')
		begin
			set @qry=@qry+char(13)+' select '''+@A_DealerCode+''','''',''--'' '
			set @qry=@qry+char(13)+' union all '
			set @qry=@qry+char(13)+' select '''+@A_DealerCode+''',''NEW'',''신규'' '
			set @qry=@qry+char(13)+' union all '
			
			set @qry=@qry+char(13)+' select  '
			set @qry=@qry+char(13)+' dealercode, middleName,middleName '
			set @qry=@qry+char(13)+' from ( '
			set @qry=@qry+char(13)+' select top 100 percent '
			set @qry=@qry+char(13)+' a.dealercode, a.middlename  '
			set @qry=@qry+char(13)+' from MiddleClass a inner join baseMaterialUpload b  '
			set @qry=@qry+char(13)+' on( a.dealerCode = b.dealerCode) '
			set @qry=@qry+char(13)+' where a.dealercode='''+@A_DealerCode+''' '
			set @qry=@qry+char(13)+' and dbo.UF_LARGENAME('''+@A_DealerCode+''',a.largecode)=b.largeName '
			set @qry=@qry+char(13)+' and b.seq='''+@A_Seq+'''  '
			set @qry=@qry+char(13)+' order by middleName  '
			set @qry=@qry+char(13)+' ) t '
			set @qry=@qry+char(13)+'group by dealercode, middleName  '

현재 쿼리문은 이렇게있습니다..

1531                                         --
1531    NEW                             신규
1531    소독제/세정제기타           소독제/세정제기타
1531    샐러드/드레싱                 샐러드/드레싱
1531    가공우유                        가공우유
1531    신선패류기타                  신선패류기타
1531    후랑크소시지                  후랑크소시지
1531    종이용기                        종이용기
1531    플라스틱용기                  플라스틱용기
1531    핫도그                          핫도그
1531    떡류기타                       떡류기타
1531    대파                            대파

결과문은 이런데 맨오른쪽 신규쪽을 ORDER BY 를 걸어 오름차순하고싶은데

인라인뷰라 ORDER BY를 TOP 100 % 걸고했는데도 안되네요 ㅠㅠ 어떤게문제인가요

by 마농 [2022.07.05 15:46:52]

"안되네요" 라는 막연한 표현 말고
어떻게 안되는지 구체적으로 표현해 주세요.


by 지메이비 [2022.07.05 16:12:17]

order by를 group by 뒤에다 걸고싶어도 middleName이 유효하지않다고 뜹니다.. 밑에분이 남겨주신 게시물로 가서 99.999퍼센트로 하니 되긴하는데 신기하네요 어떤이유인지 모르겠어요


by 우리집아찌 [2022.07.05 15:52:09]

by 지메이비 [2022.07.05 16:07:52]

오 이글대로 99.999로 하는순간 해결은 됬어요 감사합니다!


by 마농 [2022.07.05 16:18:11]

아!
인라인뷰 안에서의 정렬이 먹히질 않아서
꼼수로 TOP 100 PERCENT 를 사용하는 것이군요.
하지만 이마저도 올드 버전에서만 통하는 방법이네요.

if(@A_PhysicalName='middleName')
        begin
            set @qry=@qry+char(13)+' select '''+@A_DealerCode+''','''',''--'' '
            set @qry=@qry+char(13)+' union all '
            set @qry=@qry+char(13)+' select '''+@A_DealerCode+''',''NEW'',''신규'' '
            set @qry=@qry+char(13)+' union all '

            set @qry=@qry+char(13)+' select DISTINCT '
            set @qry=@qry+char(13)+' a.dealercode, a.middlename  '
            set @qry=@qry+char(13)+' from MiddleClass a inner join baseMaterialUpload b  '
            set @qry=@qry+char(13)+' on( a.dealerCode = b.dealerCode) '
            set @qry=@qry+char(13)+' where a.dealercode='''+@A_DealerCode+''' '
            set @qry=@qry+char(13)+' and dbo.UF_LARGENAME('''+@A_DealerCode+''',a.largecode)=b.largeName '
            set @qry=@qry+char(13)+' and b.seq='''+@A_Seq+'''  '
            set @qry=@qry+char(13)+' order by 1, 2  '

 

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