powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Пропорционалное рапределение
1 сообщений из 1, страница 1 из 1
Пропорционалное рапределение
    #39881711
Samat Samat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, у меня проблема с распределением оплаты по счетам. Конкретнее в том что не могу расщепить оплату по месяцам.
Код, приведённый ниже, расщепляет оплату на все счета, что есть. Cкрипты создания таблиц могу скинуть. Мб ранжирование и побольше CASE-ов. Любое направление будет оценено. Спасибо. p.s в соответствии с пунктом 6.
Модератор: пункт 6
<...>
- скрипты создания таблиц;
- скрипты заполнения этих таблиц тестовыми данными;
- описание желаемого результата на примере тестовых данных.
<...>

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
DECLARE @LINK INT 
SET @LINK =1;
With Payments 
AS ( SELECT *
     FROM dbo.FD_Payments
	 WHERE LINK = @LINK),
     Bills 
AS ( SELECT *,
            ISNULL(SUM(N_Amount) OVER (PARTITION BY F_Subscr, YEAR(D_Date), MONTH(D_Date)),0) AS Долг
	 FROM dbo.FD_Bills
     WHERE F_subscr IN (SELECT F_Subscr FROM Payments) AND N_Amount <> 0)
SELECT p.LINK as F_Payments, b.LINK as F_Bills, C_Sale_Items, p.N_Amount, b.N_Amount,
       CASE
	      WHEN p.N_Amount > Долг 
		  THEN p.N_Amount - Долг
		  ELSE CAST(CAST(p.N_Amount AS FLOAT)*b.N_Amount/NULLIF(Долг,0) AS DECIMAL(15,2)) END Распределение  
FROM Payments p JOIN
	 Bills b ON p.F_Subscr = b.F_Subscr 

.

Модератор: Хорош плодить топики
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Пропорционалное рапределение
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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