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

Откуда:
Сообщений: 15
Добрый день!
Нужна помощь. Запрос написали, а вот подсчитать последнее поле не получается.
Ниже код и скрин с полем:
SELECT tblClients.ID, tblClients.Client, IIF(ISNULL(Продажи_до), 0, Продажи_до) AS Продажи_до, IIF(ISNULL(Продажи_период), 0, Продажи_период) AS Продажи_период, IIF(ISNULL(Продажи_после), 0, Продажи_после) AS Продажи_после, IIF(ISNULL(Оплачено_до), 0, Оплачено_до) AS Оплачено_до, IIF(ISNULL(Оплачено_период), 0, Оплачено_период) AS Оплачено_период, IIF(ISNULL(Оплачено_после), 0, Оплачено_после) AS Оплачено_после, IIF(ISNULL(Долг_до), 0, Долг_до) AS Долг_до, IIF(ISNULL(Долг_период), 0, Долг_период) AS Долг_период, IIF(ISNULL(Долг_после), 0, Долг_после) AS Долг_после, IIF(ISNULL(Итог), 0, Итог) AS Итог FROM (select tblClients.ID, tblClients.Client, (select sum(IIF(ISNULL(SaleAmount), 0, SaleAmount)) from tblSales where tblSales.ClientID = tblClients.ID and DocumentDate < <FILTER1>) as Продажи_до, (select sum(IIF(ISNULL(SaleAmount), 0, SaleAmount)) from tblSales where tblSales.ClientID = tblClients.ID and DocumentDate >= <FILTER1> and DocumentDate <= <FILTER2>) as Продажи_период, (select sum(IIF(ISNULL(SaleAmount), 0, SaleAmount)) from tblSales where tblSales.ClientID = tblClients.ID and DocumentDate > <FILTER2>) as Продажи_после, (select sum(IIF(ISNULL(PaymentAmount), 0, PaymentAmount)) from tblPayments where tblPayments.ClientID = tblClients.ID and PaymentDate < <FILTER1>) as Оплачено_до, (select sum(IIF(ISNULL(PaymentAmount), 0, PaymentAmount)) from tblPayments where tblPayments.ClientID = tblClients.ID and PaymentDate >= <FILTER1> and PaymentDate < <FILTER2>) as Оплачено_период, (select sum(IIF(ISNULL(PaymentAmount), 0, PaymentAmount)) from tblPayments where tblPayments.ClientID = tblClients.ID and PaymentDate > <FILTER2>) as Оплачено_после, (Продажи_до - IIf(ISNULL(Оплачено_до), 0, Оплачено_до)) as Долг_до, (Продажи_период - IIf(ISNULL(Оплачено_период), 0, Оплачено_период)) as Долг_период, (Продажи_после - IIf(ISNULL(Оплачено_после), 0, Оплачено_после)) as Долг_после, Долг_до + Долг_период + Долг_после as Итог from tblClients)

К сообщению приложен файл. Размер - 19Kb
22 авг 16, 13:56    [19573060]     Ответить | Цитировать Сообщить модератору
 Re: Подсчет итогов  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
Hatab
Долг_до + Долг_период + Долг_после


не считаеться ибо нуно руцями выписывать ...а то алиасы к вычисляемым колонкам так не работают
22 авг 16, 14:23    [19573228]     Ответить | Цитировать Сообщить модератору
 Re: Подсчет итогов  [new]
Hatab
Member

Откуда:
Сообщений: 15
Равшан, это ты братанама????))))))))) Савсэм непоняно)))



Это понятно, что ручками. Только вот как?
22 авг 16, 15:43    [19573826]     Ответить | Цитировать Сообщить модератору
 Re: Подсчет итогов  [new]
o-o
Guest
(Продажи_до - IIf(ISNULL(Оплачено_до), 0, Оплачено_до)) + (Продажи_период - IIf(ISNULL(Оплачено_период), 0, Оплачено_период)) + (Продажи_после - IIf(ISNULL(Оплачено_после), 0, Оплачено_после)) as Итог
или алиасить в apply
22 авг 16, 15:49    [19573888]     Ответить | Цитировать Сообщить модератору
 Re: Подсчет итогов  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
Hatab
Равшан, это ты братанама????))))))))) Савсэм непоняно)))
Это понятно, что ручками. Только вот как?

ну где то так

SELECT 
tblClients.ID, 
-- 
 ,IIF(ISNULL(Продажи_после), 0, Продажи_после) AS Продажи_после
 
 ,IIF(ISNULL(Оплачено_после), 0, Оплачено_после) AS Оплачено_после

,(Продажи_после - IIf(ISNULL(Оплачено_после), 0, Оплачено_после)) as Долг_после

, Долг_до + Долг_период + /*Долг_после = */ (IIF(ISNULL(Продажи_после), 0, Продажи_после) - IIF(ISNULL(Оплачено_после), 0, Оплачено_после))  as Итог

 from tblClients) 
22 авг 16, 15:52    [19573917]     Ответить | Цитировать Сообщить модератору
 Re: Подсчет итогов  [new]
Hatab
Member

Откуда:
Сообщений: 15
o-o, Работает. Спасибо))))
22 авг 16, 16:47    [19574424]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить