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

Откуда:
Сообщений: 82
Имеется таблица в которой допустим 3 столбца Контрагент, Дата, Сумма.
Возможно ли в 1м запросе получить выборку такого типа:
Контрагент / Сумма до начала указанного периода / Сумма в период / Сумма на конец периода ?
26 фев 15, 12:43    [17314929]     Ответить | Цитировать Сообщить модератору
 Re: Необходима помощь в составлении запроса?  [new]
Glory
Member

Откуда:
Сообщений: 104751
Сумма на конец периода = Сумма до начала указанного периода + Сумма в период
26 фев 15, 12:46    [17314952]     Ответить | Цитировать Сообщить модератору
 Re: Необходима помощь в составлении запроса?  [new]
iap
Member

Откуда: Москва
Сообщений: 47145
Smoke999,

SUM(CASE WHEN <условие по периоду суммирования> THEN Сумма ELSE 0 END)
26 фев 15, 12:46    [17314953]     Ответить | Цитировать Сообщить модератору
 Re: Необходима помощь в составлении запроса?  [new]
iap
Member

Откуда: Москва
Сообщений: 47145
Но, честно говоря, не понимаю, откуда возьмётся сумма до указанного периода.
Это с сотворения мира надо суммировать что ли?
Обычно расчитываются или вносятся какие-то начальные остатки на известный момент времени.
26 фев 15, 12:49    [17314971]     Ответить | Цитировать Сообщить модератору
 Re: Необходима помощь в составлении запроса?  [new]
Glory
Member

Откуда:
Сообщений: 104751
iap
Но, честно говоря, не понимаю, откуда возьмётся сумма до указанного периода.

Наверное отсюда
SUM(CASE WHEN <условие для меньше периода суммирования> THEN Сумма ELSE 0 END)
26 фев 15, 12:52    [17314996]     Ответить | Цитировать Сообщить модератору
 Re: Необходима помощь в составлении запроса?  [new]
Smoke999
Member

Откуда:
Сообщений: 82
Все вроде получилось.
Запрос должен в результате показать все денежные движения по контрагентам, какая задолжность была на начало периода, сколько товара от него поступило, Сумму оплаты за период, Сумма задолжности на конец. Вобщем баланс по поставщикам
26 фев 15, 12:55    [17315015]     Ответить | Цитировать Сообщить модератору
 Re: Необходима помощь в составлении запроса?  [new]
iap
Member

Откуда: Москва
Сообщений: 47145
Glory
iap
Но, честно говоря, не понимаю, откуда возьмётся сумма до указанного периода.

Наверное отсюда
SUM(CASE WHEN <условие для меньше периода суммирования> THEN Сумма ELSE 0 END)
То есть, просуммируется всё, что только есть в таблице, до указанной даты.
Это очень неразумно, особенно в перспективе.
26 фев 15, 12:57    [17315027]     Ответить | Цитировать Сообщить модератору
 Re: Необходима помощь в составлении запроса?  [new]
Glory
Member

Откуда:
Сообщений: 104751
iap
То есть, просуммируется всё, что только есть в таблице, до указанной даты.

Ну так в постановке и было "Сумма до начала указанного периода"
26 фев 15, 13:00    [17315048]     Ответить | Цитировать Сообщить модератору
 Re: Необходима помощь в составлении запроса?  [new]
iap
Member

Откуда: Москва
Сообщений: 47145
Glory
iap
То есть, просуммируется всё, что только есть в таблице, до указанной даты.

Ну так в постановке и было "Сумма до начала указанного периода"
Достаточно представить сотни миллионов записей таблицы проводок
до указанной даты, которые надо суммировать каждый раз при запуске этого запроса,
и становится грустно.
А в постановке задачи - да, конечно, так и сказано...
Просто постановщика ещё жизнь по голове не била.
26 фев 15, 13:08    [17315116]     Ответить | Цитировать Сообщить модератору
 Re: Необходима помощь в составлении запроса?  [new]
Glory
Member

Откуда:
Сообщений: 104751
iap
и становится грустно.

Да, сервер жалко.
26 фев 15, 13:11    [17315135]     Ответить | Цитировать Сообщить модератору
 Re: Необходима помощь в составлении запроса?  [new]
Smoke999
Member

Откуда:
Сообщений: 82
Сотни миллионов проводок такого не будет никогда, так что данный метод вполне приемлем.
26 фев 15, 14:43    [17315815]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить