MSSQL 2005 orderby 질문 0 2 2,284

by 김성진 [SQLServer] mssql 전자정부 orderby sql [2021.02.08 16:03:25]


오름차순.PNG (52,158Bytes)

안녕하세요 sql 수정을 위하여 코드를 보았는데 orderby절 어디를 손봐야 할지 모르겠어서 올립니다 ㅠㅠ

  /*historyManagerDAO.selectHistoryManagerList*/
        SELECT *
         FROM (
        SELECT  ROW_NUMBER() OVER (ORDER BY measurement_date ,measurement_time DESC ) 
                 AS rownum
              ,     (CASE
            WHEN device_plot = '11' THEN 'Plot1'
            WHEN device_plot = '22' THEN 'Plot2'
            WHEN device_plot = '33' THEN 'Plot3'
            WHEN device_plot = '44' THEN 'Plot4'
        END)as deviceplot
             , CONVERT(CHAR(10), CONVERT(DATETIME, measurement_date), 111)   measurementdate
             , STUFF(STUFF(measurement_time, 3, 0, ':'), 6, 0, ':')          measurementtime
             , MAX(CASE device_plot_tmb WHEN '1' THEN temperature_value END) temperaturevalueT
             , MAX(CASE device_plot_tmb WHEN '2' THEN temperature_value END) temperaturevalueM
             , MAX(CASE device_plot_tmb WHEN '3' THEN temperature_value END) temperaturevalueB
             , MAX(CASE device_plot_tmb WHEN '1' THEN humidity_value    END) humidityvalueT
             , MAX(CASE device_plot_tmb WHEN '2' THEN humidity_value    END) humidityvalueM
          FROM smarcle_data_log
         WHERE 1=1
           AND device_plot_tmb IN ('1','2','3')
        
            device_plot = #searchCondition#
          
               
                
                    measurement_date BETWEEN REPLACE(#schFrom#, '-', '') AND REPLACE(#schTo#, '-', '')
                
            
         GROUP BY device_plot, measurement_date, measurement_time)a
         
         
             WHERE rownum BETWEEN #firstIndex# AND #lastIndex#
 

날짜와 시간이 붙어서 2021/02/08 13:54:33 이런식으로 출력이 되고 있습니다.. 그런데 이것을 날짜와 시간을 같이 오름차순으로 보고싶어서 최신순으로  desc로 오름순으로 하였는데  시간 부분에서는 오름차순이 되지만 날짜부분에서는 반대로 되는데 해결법을 알고싶습니다..

날짜는 지금  1월 8일부터 2월 8일까지 조회가 되고있는 상황입니다! 반대로 시간부분을 오름차순에서 빼면 이상하게 정렬이 되어버려서 부탁드립니다!

 

by 마농 [2021.02.08 16:31:55]

1. ASC/DESC 는 항목마다 지정
2. 정렬기준은 유니크하도록.
- date, time 만으로는 유일하지 않음. 유일 항목 추가.
- 변경전 : ORDER BY measurement_date, measurement_time DESC
- 변경후 : ORDER BY measurement_date DESC, measurement_time DESC, device_plot


by 김성진 [2021.02.08 17:04:53]

아주 간단한 문제 였군요... 감사합니다!

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