2013-09-08 3 views
0

Я использую SqlLite. Моя таблица состоит из jobno и времени (ondate), на котором оно было создано. Я хочу выбрать наиболее последние вакансии из каждой группы.Коррелированный запрос Sql не дает желаемого результата

ondate не входит в стандартную форму. Он содержит значения в этом формате 09/08/2013 04:04:30 Так что я сделал заказ ondate немного по-другому.

select r1.jobno, r1.ondate 
from reports r1 
where(
    select r2.jobno 
    from reports r2 
    where r1.jobno=r2.jobno 
    ORDER BY 
      substr(r2.ondate,7,4)|| 
      substr(r2.ondate,1,2)|| 
      substr(r2.ondate,4,2)|| 
      substr(r2.ondate,11) desc 
    ) 
group by r1.jobno <=1 

Выполняется заказом на ondate. Он получает заказы должным образом.
Коррелированный запрос неверен, он не дает мне правильный результат. Кто-нибудь может помочь мне исправить этот запрос.

+0

Возможно: группа по r1.jobno <= 1 – yuvi

+0

Я попробовал. Это не проблема. Я сделал редактирование в вопросе об этом – coding

ответ

1
select r1.jobno, r1.ondate 
from reports r1 
where 
    r1.ondate = (
     select ondate 
     from reports as r2 where r2.jobno = r1.jobno 
     order by 
      substr(r2.ondate,7,4)|| 
      substr(r2.ondate,1,2)|| 
      substr(r2.ondate,4,2)|| 
      substr(r2.ondate,11) desc 
     limit 1 
    ) 
+0

Спасибо еще раз сэр :-) Он работает ... !! Я очень ценю вашу помощь. – coding

+0

@coding не проблема, на самом деле я не sqlite гуру, больше SQL Server и postgreSQL, но попробую помочь, если возможно :) –

Смежные вопросы