Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
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] Ответить | Цитировать Сообщить модератору |
Maxx Member [скрыт] Откуда: Сообщений: 24290 |
не считаеться ибо нуно руцями выписывать ...а то алиасы к вычисляемым колонкам так не работают |
||
22 авг 16, 14:23 [19573228] Ответить | Цитировать Сообщить модератору |
Hatab Member Откуда: Сообщений: 15 |
Равшан, это ты братанама????))))))))) Савсэм непоняно))) Это понятно, что ручками. Только вот как? |
22 авг 16, 15:43 [19573826] Ответить | Цитировать Сообщить модератору |
o-o
Guest |
(Продажи_до - IIf(ISNULL(Оплачено_до), 0, Оплачено_до)) + (Продажи_период - IIf(ISNULL(Оплачено_период), 0, Оплачено_период)) + (Продажи_после - IIf(ISNULL(Оплачено_после), 0, Оплачено_после)) as Итог или алиасить в apply |
22 авг 16, 15:49 [19573888] Ответить | Цитировать Сообщить модератору |
Maxx Member [скрыт] Откуда: Сообщений: 24290 |
ну где то так 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] Ответить | Цитировать Сообщить модератору |
Hatab Member Откуда: Сообщений: 15 |
o-o, Работает. Спасибо)))) |
22 авг 16, 16:47 [19574424] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |