Я знаю, что Вы попросили Oracle, но в SQL 2005 мы теперь используем это:
-- Single Value
;WITH ByDate
AS (
SELECT UserId, Value, ROW_NUMBER() OVER (PARTITION BY UserId ORDER BY Date DESC) RowNum
FROM UserDates
)
SELECT UserId, Value
FROM ByDate
WHERE RowNum = 1
-- Multiple values where dates match
;WITH ByDate
AS (
SELECT UserId, Value, RANK() OVER (PARTITION BY UserId ORDER BY Date DESC) Rnk
FROM UserDates
)
SELECT UserId, Value
FROM ByDate
WHERE Rnk = 1
Я бы предложил использовать виджет диалога jQuery вместо фактического нового окна. Это упростит доступ к новому значению, поскольку оно находится в DOM того же окна. Просто воспользуйтесь функцией обратного вызова кнопки, закрывающей окно, извлеките значение из элемента DOM, содержащегося в диалоговом окне, и скопируйте его в целевой элемент DOM в форме.
$('#popupDialog').dialog({
modal: true,
autoOpen: false,
buttons: {
'Cancel': function() {
$(this).dialog('close');
},
'Accept': function() {
$('#mainForm input#target').val( $(this).find('#widgetName').val() );
$(this).dialog('close');
}
});
$('#popupButton').click( function() {
$('#popuDialog').dialog('open');
});
<div id="popupDialog" title="Input a new widget name">
<p>
<label for="widgetName">Please input a new widget name:</label>
<input type="text" id="widgetName" />
</p>
</div>
Абсолютно верно: вы ищете свойство JS native * opener (обсуждение здесь ), jquery не требуется (хотя он может быть упакован для вас туда).
Открытие и закрытие Windows - это довольно неплохой способ, отличный от 2.0, вы бы не предпочли иметь лайтбокс или аналогичный встроенный диалог на основе HTML? Диалог jQuery, безусловно, был бы шагом вперед для этого.
* ну, универсально поддерживается, если не определены стандарты