Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2014.05.25;
Скачать: [xml.tar.bz2];

Вниз

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

 
Очень злой   (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;
Скачать: [xml.tar.bz2];

Наверх





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


15-1385065805
Юрий
2013-11-22 00:30
2014.05.25
С днем рождения ! 22 ноября 2013 пятница


2-1375773621
Санек
2013-08-06 11:20
2014.05.25
Кодировка письма


3-1298273047
Александр Т
2011-02-21 10:24
2014.05.25
Сгруппировать объединение...


2-1375696096
Света
2013-08-05 13:48
2014.05.25
Точный таймер





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский