Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2014.05.25;
Скачать: CL | DM;

Вниз

Проблема с запросом.   Найти похожие ветки 

 
Очень злой   (2011-02-25 16:06) [0]

Делаю такой запрос: (смысл: заполнить поле t1field1 значениями из другой таблицы. Если возникает неоднозначность, то берем наиболее подходящее значение)
UPDATE sometable1 a
  SET t1field1 = (SELECT t2field1
                FROM (SELECT t2field1 , t2field3
                          FROM sometable2
                         WHERE t2field2 = a.t1field2
                      ORDER BY t2field3 DESC)
               WHERE ROWNUM = 1)
WHERE EXISTS (SELECT null
                FROM sometable2
               WHERE t2field2 = a.t1field2)


Получаю сообщение об invalid identifier (строку выделил жирным).
Подскажите, пожалуйста, как решить проблему?


 
Sergey13 ©   (2011-02-25 17:14) [1]

> Если возникает неоднозначность, то берем наиболее подходящее значение
Это в смысле первое попавшееся? 8-)

> Получаю сообщение об invalid identifier (строку выделил жирным).
Присвой алиас втаблице в подзапросе и используй его. Возможно есть такое поле в обеих таблицах.

Как то так может прокатит (если я не запутался 8-))?

SET t1field1 = (SELECT t2field1 FROM sometable2 t2 WHERE t2.t2field2 = a.t1field2 and t2.t2field3=
                  (select max(t2field3) FROM sometable2 t3 WHERE t3.t2field2 = a.t1field2)
               )


 
Очень злой   (2011-02-25 18:59) [2]


> Это в смысле первое попавшееся? 8-)
>


Нет. Ибо там есть ORDER BY t2field3 DESC, т.е. сначала сортируется по убыванию, потом берется первая запись WHERE ROWNUM = 1 из получившегося..


> Как то так может прокатит (если я не запутался 8-))?


Спасибо. Как-то не подумал что можно статистические фукции использовать в данной ситуации...


 
Кщд   (2011-02-26 08:40) [3]


SELECT max(b.t2field1) keep (dense_rank last order by b.t2field3)
FROM sometable2 b
WHERE b.t2field2 = a.t1field2



Страницы: 1 вся ветка

Текущий архив: 2014.05.25;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.005 c
2-1375104527
Очень Злой
2013-07-29 17:28
2014.05.25
Excel


15-1384964446
Sergey Masloff
2013-11-20 20:20
2014.05.25
Ну чо опять про работу (не дельфи) ;-)


15-1384704906
Дмитрий СС
2013-11-17 20:15
2014.05.25
Нумерация точек в системе координат.


15-1385107572
Сергей
2013-11-22 12:06
2014.05.25
Решение задачи


15-1384870709
Dr.Wolf
2013-11-19 18:18
2014.05.25
Поиск стихотворения