|
|
|
Сложный запрос
|
|||
|---|---|---|---|
|
#18+
Имеем: История изменения курса валют (валюта, курс). Валют несколько (EUR, USD, KGZ...). Требуется: Получить средний курс по трем последним записям для каждой валюты. Возможно ли сделать это на сиквеле? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2004, 20:11 |
|
||
|
Сложный запрос
|
|||
|---|---|---|---|
|
#18+
Возможно ли сделать это на сиквеле? Возможно. Достаточно легко ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2004, 20:15 |
|
||
|
Сложный запрос
|
|||
|---|---|---|---|
|
#18+
Ну просто камень с души свалился! =) А как напиример? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2004, 20:52 |
|
||
|
Сложный запрос
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2004, 21:02 |
|
||
|
Сложный запрос
|
|||
|---|---|---|---|
|
#18+
Или select [Валюта], avg([Курс]) from [КурсыВалют] where [идЗаписи] in (select top 3 [идЗаписи] from [КурсыВалют] order by [идЗаписи] desc) group by [Валюта] Эх, когда же завтрешний (или завтряшний?.. завтришний.. Пятничный, в общем) вечер наступит што-ли? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2004, 23:08 |
|
||
|
Сложный запрос
|
|||
|---|---|---|---|
|
#18+
Т.е. select [Валюта], avg([Курс]) as a from [КурсыВалют] as [курс] where [идЗаписи] in (select top 3 [идЗаписи] from [КурсыВалют] where [КурсыВалют].[Валюта]=[курс].[Валюта] order by [идЗаписи] desc) group by [Валюта] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2004, 23:11 |
|
||
|
Сложный запрос
|
|||
|---|---|---|---|
|
#18+
2 Geo: Твой вариант намного лучше. Только скажи мне - оно действительно так работает? Можно писать TOP 3, чтобы оно выдавало не всего 3, а по 3 на каждое значение некоторого поля? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2004, 23:24 |
|
||
|
Сложный запрос
|
|||
|---|---|---|---|
|
#18+
BC> Можно писать TOP 3, чтобы оно выдавало не всего 3, а по 3 на каждое значение некоторого поля? Ага. Только первый мой вариант (неправильный) будет выдавать именно всего 3, а второй - по 3 на каждое значение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2004, 23:31 |
|
||
|
Сложный запрос
|
|||
|---|---|---|---|
|
#18+
Понял, спасибо. Буду знать. Великая вещь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2004, 23:34 |
|
||
|
Сложный запрос
|
|||
|---|---|---|---|
|
#18+
Саныч, похоже у тебя проблемы с коррелированными запросами. Наверное перепраздновал .А в принципе решение похожих задач достаточно часто встречалось на форуме, например\r /topic/60176&pg=1#428134\r или /topic/28485&pg=2#335477 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2004, 01:43 |
|
||
|
Сложный запрос
|
|||
|---|---|---|---|
|
#18+
Красивый запрос. Только [идЗаписи] в таблице нет =( Есть [Дата] но она без времени и за день может быть 5 разных записей. Даже если не думать о ТОП 3, то как преобразовать связь "where [идЗаписи] in (...)" без [идЗаписи]? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2004, 12:17 |
|
||
|
Сложный запрос
|
|||
|---|---|---|---|
|
#18+
А как у вас определяется - какие записи и есть последние 3? Какие условия сортировки? И (пардон) уникальности? про уникальность: 5 записей в день по одной валюте Дата Вал Курс 13.04.2004 EUR 34.58 13.04.2004 EUR 34.57 13.04.2004 EUR 34.58 13.04.2004 EUR 34.59 13.04.2004 EUR 34.58 Как отличить записи 1, 3 и 5? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2004, 12:44 |
|
||
|
Сложный запрос
|
|||
|---|---|---|---|
|
#18+
Для конкретной: Код: plaintext 1. 2. 3. 4. Rnd - если нет уникального индекса по (CODE,DATK). Для каждой: Код: plaintext 1. 2. 3. 4. для Ac>97 наверное можно без [ ]. если есть уникальный индекс по дате+валюте - перепишите In в предложениях Гео или ВС на WHERE EXISTS ..., причем работать будет быстрее чем с In, а "недокументированный" синтаксис (97) не понадобится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2004, 12:55 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32474471&tid=1675370]: |
0ms |
get settings: |
12ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
178ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
| others: | 271ms |
| total: | 549ms |

| 0 / 0 |
