2013-08-12 1 views
1

에서 하나 개의 레코드와 날짜에서 가격을 얻을 수 있습니다. 나는 이전 가격을 얻으려면 내 쿼리의 결과쿼리이 내 코드 또 다른

old_price new_price date of update    idOrder   toy_id 
0   0.16   2013-08-06 10:03:41.700 1    123 
0.16  0.08   2013-08-06 10:02:28.850 2    123 

: 기존 가격, 새 가격, 갱신 날짜, idOrder 등

그것은 다음과 같습니다 :이 임시 테이블에는 몇 가지 열이 있습니다 idOrder가 2 인 레코드의 새 가격이지만 idOrder = 1 인 레코드의 업데이트 날짜입니다.이 레코드는 두 레코드에서 동일합니다.

그러나 코드 내가 (이 질문의 시작 부분에서 코드)가 함께, 난 단지 idOrder로 레코드를 가져 = 2

이 어떻게 할까?

답변

2

나는이 문제가 당신이 당신의 테이블에 정확한 레이블을주지 않는다는 것과 이것이 약간의 혼란을 일으킨다 고 생각한다. 이 시도 :

select row_number() over (order by cte3.update desc) as row_num, 

     (select innerQuery.update from last_two_items as innerQuery 
     where innerQuery.idOrder = 1 and 
     innerQuery.toy_id = cte3.toy_id 
     ) as update, 

     cte3.price_previous as price_previous, 
     cte3.price_current as price_current, 
     cte3.id as id, 
     cte3.toy_id as toy_id 

from last_two_items as cte3 
where idOrder = 2 
0

을 내가 다른 접근 방법을 사용하는 것이 좋을 것 일하고에도 불구하고 :

select lti2.old_price, lti2.new_price, lti1.date_of_update 
from last_two_items lti1 
left join last_two_items lti2 
where lti1.idOrder = 1 and lti2.idOrder = 2 

꽤 쉬운 일을 하위 선택하지 않고.