Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
MaximusX
Зарегистрирован: 10.02.2004 Сообщения: 12
|
Добавлено: Вт Фев 10 2004 06:01 Заголовок сообщения: Вопрос по SQL |
|
|
Имеется следующий запрос:
SELECT
C.PrimaryKeyC,
max(A.SomeField)
FROM
A, B, C
WHERE
A.PrimaryKeyB = B.PrimaryKeyB AND
B.PrimaryKeyC = C.PrimaryKeyC
GROUP BY
C.PrimaryKeyC
Необходимо, помимо максимального значения поля SomeField из таблицы A вернуть еще и значение ее первичного ключа, относящегося к этой записи, т.е. A.PrimaryKey. Все услажняестя тем, что поле C.PrimaryKey выбирать нужно обязательно.
Пожалуйста, подскажите как это можно сделать. |
|
Вернуться к началу |
|
 |
igis Гость
|
Добавлено: Чт Фев 19 2004 10:18 Заголовок сообщения: ответ на вопрос по SQL |
|
|
Одно из возможных решений следующее (если я правильно понял проблему):
SELECT C_1.PrimaryKeyC, A_1.PrimaryKeyA, A_1.SomeField
FROM C C_1, B B_1, A A_1
WHERE (A_1.PrimaryKeyB = B_1.PrimaryKeyB) AND
(B_1.PrimaryKeyC = C_1.PrimaryKeyC) AND
(A_1.SomeField IN (SELECT MAX(A.SomeField)
FROM C, B, A
WHERE (A.PrimaryKeyB = B.PrimaryKeyB) AND
(B.PrimaryKeyC = C.PrimaryKeyC) AND
(C.PrimaryKeyC = C_1.PrimaryKeyC)
GROUP BY C.PrimaryKeyC
)
) |
|
Вернуться к началу |
|
 |
|