Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Помогите, пожалуйста, составить запрос!!! :0( / 5 сообщений из 5, страница 1 из 1
27.11.2001, 20:26
    #32017926
Timur
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите, пожалуйста, составить запрос!!! :0(
Есть две таблицы: в одной - курсы валют(в рублях),
в другой - суммы сделок в этих валютах.
Необходимо подсчитать общую сумму в рублях для каждой валюты.
Проблема в том, что курсы валют меняются в определенные дни,
а сделки происходят практически каждый день.
При несовпадении даты изменения курса валюты с датой сделки
курс считается по ближайшей предыдущей дате изменения курса.
Можно ли сделать один запрос, который бы вывел данные в виде:

валюта сумма
US 20001.65р
dem 10009.78р
.... .........
tugrik 10001010р

Таблицы:

VALUTA

CodeVal | date | kurs
----------------------------------------
US | 10/10/2000 | 23.40
dem | 10/10/2000 | 9.90
.......... .......... ......
US | 13/10/2000 | 23.41
dem | 13/10/2000 | 10.00
......... ........... .......
US | 17/10/2000 | 23.43
dem | 17/10/2000 | 10.01
......... ........... ......
......... ........... ......
US | 10/09/2001 | 29.60
dem | 10/09/2001 | 14.20

DOC

CodeVal | date | Sum
--------------------------------
US | 9/10/2000 | 1789
US | 9/10/2000 | 100.34
dem | 9/10/2000 | 1992
......... .......... .....
US | 10/10/2000 | 100
dem | 10/10/2000 | 200
dem | 10/10/2000 | 400
dem | 10/10/2000 | 500
......... ............ .....
......... ............ .....
dem | 11/09/2001 | 200
US | 12/09/2001 | 90

Таблицы содержат несколько тысяч строк.
...
Рейтинг: 0 / 0
27.11.2001, 22:43
    #32017927
Владимир
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите, пожалуйста, составить запрос!!! :0(
Как насчет комиссионных ?
...
Рейтинг: 0 / 0
27.11.2001, 22:51
    #32017929
Ilya
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите, пожалуйста, составить запрос!!! :0(
Poprobuy tak -- dolzhno rabotat':


select v1.codeval as valuta, sum (deals.[sum]*v1.kurs) as summa
FROM
valuta as v1 inner join
(select doc.codeval, doc.[date], doc.[sum], max(v.date) as kursdate
from
doc INNER JOIN valuta as v
on (doc.codeval = v.codeval) and (doc.[date] > = v.[date])
group by doc.codeval, doc.[date], doc.[sum]
) as deals
on v1.codeval = deals.codeval and v1.[date] = deals.kursdate
group by v1.codeval
order by v1.codeval
...
Рейтинг: 0 / 0
28.11.2001, 10:03
    #32017970
Timur
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите, пожалуйста, составить запрос!!! :0(
IIya!!!
Огромное спасибо!
Заработал!
Но, честно говоря, мне стало грустно - до такого запроса я не додумался бы...
Подскажите, пожалуйста, хорошую литературу, где описываются запросы подобной сложности, а не SELECT * FROM AnyTable!!!!
...
Рейтинг: 0 / 0
28.11.2001, 13:18
    #32018003
Ilya
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите, пожалуйста, составить запрос!!! :0(
Ne znayu mozhno li dostat' eti knigi v Rossii, no esli est' dostup k amerikanskim knigam, to sovetuyu posmotret':

Ken Henderson -- "The Guru's Guide to Transact-SQL"
Joe Celko -- "SQL for Smarties: Advanced SQL Programming"

Esli etih knig ne naydesh' -- day znat', mozhet esche chego poregomenduyu.

Ilya
sentinel@gis.net

(izviniayus' za latinskiy shrift -- pishu s raboti, a u menia zdes' kirilitsu ne postavit')
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Помогите, пожалуйста, составить запрос!!! :0( / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]