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

Откуда: Тверская обл., г. Кимры / Москва
Сообщений: 130
Хелло!

Кто-нибудь считал вот такое добро?

A1 = C * P1
A2 = (C - A1) * P2
A3 = (C - A1 - A2) * P3
A4 = (C - A1 - A2 - A3) * P4
и т.д.

Грубо гооворя есть 4 колонки (P1, P2, P3, P4) Скидки в процентах
С - это цена до вычита скидок

Т.е. потом есть некая цена L, которую считают как С * (1 - P1) * (1 - P2) * (1 - P3) * (1 - P4)

Хочу получить размер в денежном эквиваленте каждой скидки (т.е. A1 и т.д.).

Как то красиво это можно написать, кроме как Ctrl-C Ctrl-V?
А то выражения получаются нечитабельные...

Собственно SQL Server 2008 R2 + табличка с колонками С, P1, P2, P3, P4 на входе

С уважением,
Лобанов Евгений
18 янв 12, 16:04    [11926655]     Ответить | Цитировать Сообщить модератору
 Re: Проценты  [new]
Shakill
Member

Откуда: мск
Сообщений: 1887
E_u_g_e_n_E,

SELECT
	t.C, t.P1, t.P2, t.P3, t.P4,
	ta1.A1, ta2.A2, ...
	
FROM MyTable tt
CROSS APPLY (
	SELECT tt.C * tt.P1
) ta1 (A1)

CROSS APPLY (
	SELECT (tt.C - ta1.A1) * tt.P2
) ta2 (A2)
...
18 янв 12, 16:15    [11926807]     Ответить | Цитировать Сообщить модератору
 Re: Проценты  [new]
E_u_g_e_n_E
Member

Откуда: Тверская обл., г. Кимры / Москва
Сообщений: 130
Shakill,

Оу, грац!
То что надо.
18 янв 12, 16:22    [11926904]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить