Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Посчитать суммы операций  [new]
ProbationerORA
Member

Откуда:
Сообщений: 22
Посчитать суммы операций (Trans.Sumtrans) по валютам RUB,EUR,USD (Curr.isosym) за каждый день последней недели.
Но вывести на экран только те суммы которые за день превышают 1000(rur/usd/eur) во всех остальных случаях проставить 0.
Таблица Trans - таблица операций
Таблица ARTDAY - таблица со всеми датами (artday.Artday содержит дату)
Таблица Curr - Справочник валют (связана с TRANS по IDCURR = IDCURRTRANS)
Trans.idcurrtrans - Валюта операции
Trans.Sumtrans - Сумма операции
Trans.artdate - Дата операции
Curr.isosym - Название валюты

Пример результата:
_________________________________________
|Currency| Amount| Date |
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
eur 1200 13.09.2005
usd 1700 13.09.2005
rur 0 13.09.2005
-----------------------------------------
eur 0 14.09.2005
usd 0 14.09.2005
rur 0 14.09.2005
18 май 12, 08:20    [12574128]     Ответить | Цитировать Сообщить модератору
 Re: Посчитать суммы операций  [new]
ProbationerORA
Member

Откуда:
Сообщений: 22
Доброго утра форумчане! Если есть мысли излагайте буду рад!
18 май 12, 08:22    [12574135]     Ответить | Цитировать Сообщить модератору
 Re: Посчитать суммы операций  [new]
HandKot
Member

Откуда: Sergiev Posad
Сообщений: 3058
case when sum(Sumtrans ) < 1000 then 0 else sum(Sumtrans ) end
18 май 12, 08:25    [12574140]     Ответить | Цитировать Сообщить модератору
 Re: Посчитать суммы операций  [new]
Glory
Member

Откуда:
Сообщений: 104751
ProbationerORA
Если есть мысли излагайте буду рад!

А у вас самого ни одной что ли нет ?
Что конкретно у вас не получается ?
18 май 12, 08:26    [12574144]     Ответить | Цитировать Сообщить модератору
 Re: Посчитать суммы операций  [new]
ProbationerORA
Member

Откуда:
Сообщений: 22
Извините, я ошибся, я это уже решил, кому интересно выглядит вот так:
WITH Test AS
(
Select C.isosym, AD.ArtDay, SUM(TR.Sumtrans) as Total
From Curr C inner join trans TR ON
C.IDCurr= TR.idcurrtrans left outer join dbo.ArtDay AD ON
TR.ArtDate = AD.ArtDay
where C.isosym in ('USD','EUR','RUB') and AD.ArtDay > (getdate()-7)
group by C.isosym, AD.ArtDay
)
SELECT isosym, Total = CASE WHEN Total < 1000 THEN 0 ELSE Total END , ArtDay
FROM Test
18 май 12, 08:29    [12574157]     Ответить | Цитировать Сообщить модератору
 Re: Посчитать суммы операций  [new]
ProbationerORA
Member

Откуда:
Сообщений: 22
Вот это хотел опубликовать:
https://www.sql.ru/forum/actualthread.aspx?tid=941947
18 май 12, 08:32    [12574166]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить