-
Есть 2 таблицы
T1 (ID INTEGER, IDValue INTEGER, Value CHAR(10))
T2 (ID INTEGER, IDValue INTEGER, Value CHAR(10))
Данные T2.IDValue могут повторяться. Как выбрать ПОСЛЕДНЕЕ значение T2.IDValue (MAX(T2.ID))
UPDATE T1 SET T1.Value=T2.Value FROM T1
INNER JOIN T2 ON (T1.IDValue=T2.IDValue)
WHERE (T1.ID=2) AND ...
-
а что такое "последнее" значение?
-
> Поросенок Винни-Пух © (26.09.08 14:45) [1]
MAX(ID)
-
Надо добавить еще одно поле в таблицу, или RecordDateTime или RecordOrder
-
> Anatoly Podgoretsky © (26.09.08 14:58) [3]
поле RecordDateTime - есть
ну и?
всё равно MAX(RecordDateTime) соответствует MAX(ID)
-
> Anatoly Podgoretsky © (26.09.08 14:58) [3]
RecordOrder - поле ID и есть такой идентификатор
-
> как получить максимальное значение?
> Как выбрать ПОСЛЕДНЕЕ значение
Так какое же?
И зачем, если не секрет?
-
> Johnmen © (26.09.08 15:17) [6]
в второй таблице хранится мусор(история). Интересует только последнее (MAX) значение, соответствующее последнему обновлению информации.
в первую таблицу надо добавить только такие записи.
-
> webpauk © (26.09.08 15:20) [7]
А если пока ты добавляешь последнее обновление, там появится ещё более новое?
-
Table2:
ID IDValue Value
1 1 Значение1
2 2 Значение2
3 1 Значение11
4 1 Значение12
5 2 Значение21
-
> Johnmen © (26.09.08 15:22) [8]
блокируется таблица во время выборки
-
Обычно так
... AND (T2.ID=(SELECT MAX(T3.ID) FROM T2))
-
> ... AND (T2.ID=(SELECT MAX(T3.ID) FROM T2 T3))
-
AND (T2.ID=(SELECT MAX(T3.ID) FROM T2))
IsNull ещё неплохо добавить. Ну или его аналог.