powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Access. Sql подзапросы как сделать??(((
25 сообщений из 36, страница 1 из 2
Access. Sql подзапросы как сделать??(((
    #39168907
Ainur.sm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
SELECT 'Нераспределенная прибыль' AS ПАССИВ, K-S-NV-PD AS [color=blue]Itogo[/color] From qdfPayments
 WHERE K=(Select Sum(IncomeAmount) From qdfPayments WHERE Year(PaymentDate)<2015 And (ManagerPayCalc='Закрыт' And TransactionType='Поступления') )
 And S=(SELECT Sum(PaymentAmount) From qdfPayments WHERE Year(PaymentDate)<2015 And (ManagerPayCalc='Закрыт' And TransactionType='Затраты по заявке'))
 And NV= (Select Sum(PaymentAmount) From qdfPayments WHERE Year(PaymentDate)<2015  And TransactionType='Расходы прочие')
 ANd PD= (SELECT Sum(PaymentAmount)From qdfPayments WHERE Year(PaymentDate)<2015    And TransactionType='Прибыль, дивиденды') 
 -SUM(qdfPayments.IncomeAmount * (Month(PaymentDate) = 1 AND qdfPayments.ManagerPayCalc = 'Закрыт' AND qdfPayments.TransactionType = 'Поступления'))
+SUM(qdfPayments.PaymentAmount * (Month(PaymentDate)=1 AND qdfPayments.ManagerPayCalc = 'Закрыт' AND qdfPayments.TransactionType = 'Затраты по заявке'))
+SUM(qdfPayments.PaymentAmount * (Month(PaymentDate)=1 AND qdfPayments.TransactionType = 'Расходы прочие'))
+SUM(qdfPayments.PaymentAmount * (Month(PaymentDate)=1 AND qdfPayments.TransactionType = 'Прибыль, дивиденды'))+[color=blue] Itogo[/color] AS Январь,
-SUM(qdfPayments.IncomeAmount * (Month(PaymentDate)=2 AND qdfPayments.ManagerPayCalc = 'Закрыт' AND qdfPayments.TransactionType = 'Поступления'))
+SUM(qdfPayments.PaymentAmount * (Month(PaymentDate)=2 AND qdfPayments.ManagerPayCalc = 'Закрыт' AND qdfPayments.TransactionType = 'Затраты по заявке'))
+SUM(qdfPayments.PaymentAmount * (Month(PaymentDate)=2 AND qdfPayments.TransactionType = 'Расходы прочие'))+SUM(qdfPayments.PaymentAmount * (Month(PaymentDate)=2 AND qdfPayments.TransactionType = 'Прибыль, дивиденды')) + Январь AS Февраль,
-SUM(qdfPayments.IncomeAmount * (Month(PaymentDate)=3 AND qdfPayments.ManagerPayCalc = 'Закрыт' AND qdfPayments.TransactionType = 'Поступления'))
+SUM(qdfPayments.PaymentAmount * (Month(PaymentDate)=3 AND qdfPayments.ManagerPayCalc = 'Закрыт' AND qdfPayments.TransactionType = 'Затраты по заявке'))
+SUM(qdfPayments.PaymentAmount * (Month(PaymentDate)=3 AND qdfPayments.TransactionType = 'Расходы прочие'))+SUM(qdfPayments.PaymentAmount * (Month(PaymentDate)=3 AND qdfPayments.TransactionType = 'Прибыль, дивиденды')) + Февраль AS Март,
-SUM(qdfPayments.IncomeAmount * (Month(PaymentDate)=4 AND qdfPayments.ManagerPayCalc = 'Закрыт' AND qdfPayments.TransactionType = 'Поступления'))
+SUM(qdfPayments.PaymentAmount * (Month(PaymentDate)=4 AND qdfPayments.ManagerPayCalc = 'Закрыт' AND qdfPayments.TransactionType = 'Затраты по заявке'))
+SUM(qdfPayments.PaymentAmount * (Month(PaymentDate)=4 AND qdfPayments.TransactionType = 'Расходы прочие'))+SUM(qdfPayments.PaymentAmount * (Month(PaymentDate)=4 AND qdfPayments.TransactionType = 'Прибыль, дивиденды')) + Март AS Апрель,
-SUM(qdfPayments.IncomeAmount * (Month(PaymentDate)=5 AND qdfPayments.ManagerPayCalc = 'Закрыт' AND qdfPayments.TransactionType = 'Поступления'))
+SUM(qdfPayments.PaymentAmount * (Month(PaymentDate)=5 AND qdfPayments.ManagerPayCalc = 'Закрыт' AND qdfPayments.TransactionType = 'Затраты по заявке'))
+SUM(qdfPayments.PaymentAmount * (Month(PaymentDate)=5 AND qdfPayments.TransactionType = 'Расходы прочие'))+SUM(qdfPayments.PaymentAmount * (Month(PaymentDate)=5 AND qdfPayments.TransactionType = 'Прибыль, дивиденды')) + Апрель AS Май,
-SUM(qdfPayments.IncomeAmount * (Month(PaymentDate)=6 AND qdfPayments.ManagerPayCalc = 'Закрыт' AND qdfPayments.TransactionType = 'Поступления'))
+SUM(qdfPayments.PaymentAmount * (Month(PaymentDate)=6 AND qdfPayments.ManagerPayCalc = 'Закрыт' AND qdfPayments.TransactionType = 'Затраты по заявке'))
+SUM(qdfPayments.PaymentAmount * (Month(PaymentDate)=6 AND qdfPayments.TransactionType = 'Расходы прочие'))+SUM(qdfPayments.PaymentAmount * (Month(PaymentDate)=6 AND qdfPayments.TransactionType = 'Прибыль, дивиденды')) + Май AS Июнь,
-SUM(qdfPayments.IncomeAmount * (Month(PaymentDate)=7 AND qdfPayments.ManagerPayCalc = 'Закрыт' AND qdfPayments.TransactionType = 'Поступления'))
+SUM(qdfPayments.PaymentAmount * (Month(PaymentDate)=7 AND qdfPayments.ManagerPayCalc = 'Закрыт' AND qdfPayments.TransactionType = 'Затраты по заявке'))
+SUM(qdfPayments.PaymentAmount * (Month(PaymentDate)=7 AND qdfPayments.TransactionType = 'Расходы прочие'))+SUM(qdfPayments.PaymentAmount * (Month(PaymentDate)=7 AND qdfPayments.TransactionType = 'Прибыль, дивиденды')) + Июнь AS Июль,
-SUM(qdfPayments.IncomeAmount * (Month(PaymentDate)=8 AND qdfPayments.ManagerPayCalc = 'Закрыт' AND qdfPayments.TransactionType = 'Поступления'))
+SUM(qdfPayments.PaymentAmount * (Month(PaymentDate)=8 AND qdfPayments.ManagerPayCalc = 'Закрыт' AND qdfPayments.TransactionType = 'Затраты по заявке'))
+SUM(qdfPayments.PaymentAmount * (Month(PaymentDate)=8 AND qdfPayments.TransactionType = 'Расходы прочие'))+SUM(qdfPayments.PaymentAmount * (Month(PaymentDate)=8 AND qdfPayments.TransactionType = 'Прибыль, дивиденды')) + Июль AS Август,
-SUM(qdfPayments.IncomeAmount * (Month(PaymentDate)=9 AND qdfPayments.ManagerPayCalc = 'Закрыт' AND qdfPayments.TransactionType = 'Поступления'))
+SUM(qdfPayments.PaymentAmount * (Month(PaymentDate)=9 AND qdfPayments.ManagerPayCalc = 'Закрыт' AND qdfPayments.TransactionType = 'Затраты по заявке'))
+SUM(qdfPayments.PaymentAmount * (Month(PaymentDate)=9 AND qdfPayments.TransactionType = 'Расходы прочие'))+SUM(qdfPayments.PaymentAmount * (Month(PaymentDate)=9 AND qdfPayments.TransactionType = 'Прибыль, дивиденды')) + Август AS Сентябрь,
-SUM(qdfPayments.IncomeAmount * (Month(PaymentDate)=10 AND qdfPayments.ManagerPayCalc = 'Закрыт' AND qdfPayments.TransactionType = 'Поступления'))
+SUM(qdfPayments.PaymentAmount * (Month(PaymentDate)=10 AND qdfPayments.ManagerPayCalc = 'Закрыт' AND qdfPayments.TransactionType = 'Затраты по заявке'))
+SUM(qdfPayments.PaymentAmount * (Month(PaymentDate)=10 AND qdfPayments.TransactionType = 'Расходы прочие'))+SUM(qdfPayments.PaymentAmount * (Month(PaymentDate)=10 AND qdfPayments.TransactionType = 'Прибыль, дивиденды')) + Сентябрь AS Октябрь,
-SUM(qdfPayments.IncomeAmount * (Month(PaymentDate)=11 AND qdfPayments.ManagerPayCalc = 'Закрыт' AND qdfPayments.TransactionType = 'Поступления'))
+SUM(qdfPayments.PaymentAmount * (Month(PaymentDate)=11 AND qdfPayments.ManagerPayCalc = 'Закрыт' AND qdfPayments.TransactionType = 'Затраты по заявке'))
+SUM(qdfPayments.PaymentAmount * (Month(PaymentDate)=11 AND qdfPayments.TransactionType = 'Расходы прочие'))+SUM(qdfPayments.PaymentAmount * (Month(PaymentDate)=11 AND qdfPayments.TransactionType = 'Прибыль, дивиденды')) + Октябрь AS Ноябрь,
-SUM(qdfPayments.IncomeAmount * (Month(PaymentDate)=12 AND qdfPayments.ManagerPayCalc = 'Закрыт' AND qdfPayments.TransactionType = 'Поступления'))
+SUM(qdfPayments.PaymentAmount * (Month(PaymentDate)=12 AND qdfPayments.ManagerPayCalc = 'Закрыт' AND qdfPayments.TransactionType = 'Затраты по заявке'))
+SUM(qdfPayments.PaymentAmount * (Month(PaymentDate)=12 AND qdfPayments.TransactionType = 'Расходы прочие'))+SUM(qdfPayments.PaymentAmount * (Month(PaymentDate)=12 AND qdfPayments.TransactionType = 'Прибыль, дивиденды')) + Ноябрь AS Декабрь
Where Year(PaymentDate)=2015
...
Рейтинг: 0 / 0
Access. Sql подзапросы как сделать??(((
    #39168923
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вопрос-то где? И зачем это многоэтажное безобразие - без постановки задачи и структур хранения данных?
...
Рейтинг: 0 / 0
Access. Sql подзапросы как сделать??(((
    #39168928
Ainur.sm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina,
Мне надо чтоб нарастающий итог 2014 г. учитывался в январе 2015г. Итог 2014+ январь 2015.


Код: plsql
1.
2.
3.
4.
(-SUM(qdfPayments.IncomeAmount * (Month(PaymentDate) = 1 AND qdfPayments.ManagerPayCalc = 'Закрыт' AND qdfPayments.TransactionType = 'Поступления'))
+SUM(qdfPayments.PaymentAmount * (Month(PaymentDate)=1 AND qdfPayments.ManagerPayCalc = 'Закрыт' AND qdfPayments.TransactionType = 'Затраты по заявке'))
+SUM(qdfPayments.PaymentAmount * (Month(PaymentDate)=1 AND qdfPayments.TransactionType = 'Расходы прочие'))
+SUM(qdfPayments.PaymentAmount * (Month(PaymentDate)=1 AND qdfPayments.TransactionType = 'Прибыль, дивиденды'))) AS Январь

это вычисление на январь месяца 2015 надо прибавить итог 2014 года
...
Рейтинг: 0 / 0
Access. Sql подзапросы как сделать??(((
    #39168935
Predeclared
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akina... без постановки задачи ...
Сломать Jet-у моск Определение границ возможностей запросов Jet SQL.
:)
...
Рейтинг: 0 / 0
Access. Sql подзапросы как сделать??(((
    #39169234
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В рамках именно MS Access считаю наиболее правильным формирование отдельного статического запроса "Итоги за прошлый год". И использование его в запросе в качестве одного из источников данных. А если корректировка таких данных исключена - то и формирование статической таблицы баланса на начало года.
...
Рейтинг: 0 / 0
Access. Sql подзапросы как сделать??(((
    #39169407
Шыфл
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ainur.sm,

что-то ты не так делаешь, однозначно. Попробуй, что ли, группировку.

Код: sql
1.
2.
3.
4.
5.
6.
SELECT SUM(qdfPayments.IncomeAmount), Month(PaymentDate), Year(PaymentDate)
FROM 
qdfPayments
WHERE (qdfPayments.ManagerPayCalc = 'Закрыт' AND qdfPayments.TransactionType IN ('Поступления','Затраты по заявке')) 
OR (qdfPayments.TransactionType IN ('Расходы прочие','Прибыль, дивиденды')) 
GROUP BY Month(PaymentDate), Year(PaymentDate)
...
Рейтинг: 0 / 0
Access. Sql подзапросы как сделать??(((
    #39169447
Ainur.sm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Шыфл,

Есть такой вариант. Только
Не правильно считает с июня месяца.

Июнь месяц -300 это не вычитает
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
SELECT 'Нераспределенная прибыль' AS ПАССИВ,
-SUM(S*(NOT Y)) AS Итог_2014,
 SUM(S*(M=1)*Y)+Итог_2014 AS Январь,
 SUM(S*(M=2)*Y)+Январь AS Февраль, 
 SUM(S*(M=3)*Y)+Февраль AS Март, 
 SUM(S*(M=4)*Y)+Март AS Апрель, 
 SUM(S*(M=5)*Y)+Апрель AS Май, 
 SUM(S*(M=6)*Y)+Май AS Июнь, 
 SUM(S*(M=7)*Y)+Июнь AS Июль, 
 SUM(S*(M=8)*Y)+Июль AS Август, 
 SUM(S*(M=9)*Y)+Август AS Сентябрь, 
 SUM(S*(M=10)*Y)+Сентябрь AS Октябрь, 
 SUM(S*(M=11)*Y)+Октябрь AS Ноябрь, 
 SUM(S*(M=12)*Y)+Ноябрь AS Декабрь
FROM
(SELECT Center, 
 -IncomeAmount  * (ManagerPayCalc = 'Закрыт' AND TransactionType = 'Поступления')
 +PaymentAmount * (ManagerPayCalc = 'Закрыт' AND TransactionType = 'Затраты по заявке')
 +PaymentAmount * (TransactionType = 'Расходы прочие')
 +PaymentAmount * (ManagerPayCalc = 'Прибыль, дивиденды') AS S,
 Month(PaymentDate) AS M,
 Year(PaymentDate)=2014 AS Y
FROM
 qdfPayments
WHERE Year(PaymentDate)<=2014 And Center IS NOT NULL
...
Рейтинг: 0 / 0
Access. Sql подзапросы как сделать??(((
    #39169461
Шыфл
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ainur.smШыфл,

Есть такой вариант. Только
Не правильно считает с июня месяца.

Июнь месяц -300 это не вычитает
Это вот значит что? Что у вас июнь месяц отрицательный? Давайте данные, что ли... Может у вас там есть 2012 год или ещё чего...

Ainur.sm

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
SELECT 'Нераспределенная прибыль' AS ПАССИВ,
-SUM(S*(NOT Y)) AS Итог_2014,
 SUM(S*(M=1)*Y)+Итог_2014 AS Январь,
 SUM(S*(M=2)*Y)+Январь AS Февраль, 
 SUM(S*(M=3)*Y)+Февраль AS Март, 
 SUM(S*(M=4)*Y)+Март AS Апрель, 
 SUM(S*(M=5)*Y)+Апрель AS Май, 
 SUM(S*(M=6)*Y)+Май AS Июнь, 
 SUM(S*(M=7)*Y)+Июнь AS Июль, 
 SUM(S*(M=8)*Y)+Июль AS Август, 
 SUM(S*(M=9)*Y)+Август AS Сентябрь, 
 SUM(S*(M=10)*Y)+Сентябрь AS Октябрь, 
 SUM(S*(M=11)*Y)+Октябрь AS Ноябрь, 
 SUM(S*(M=12)*Y)+Ноябрь AS Декабрь
FROM
(SELECT Center, 
 -IncomeAmount  * (ManagerPayCalc = 'Закрыт' AND TransactionType = 'Поступления')
 +PaymentAmount * (ManagerPayCalc = 'Закрыт' AND TransactionType = 'Затраты по заявке')
 +PaymentAmount * (TransactionType = 'Расходы прочие')
 +PaymentAmount * (ManagerPayCalc = 'Прибыль, дивиденды') AS S,
 Month(PaymentDate) AS M,
 Year(PaymentDate)=2014 AS Y
FROM
 qdfPayments
WHERE Year(PaymentDate)<=2014 And Center IS NOT NULL
)




Может всё-таки группировать?

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
SELECT 'Нераспределенная прибыль' AS ПАССИВ,
-SUM(S*(NOT Y)) AS Итог_2014,
 SUM(S*(M<=1)) AS Январь,
 SUM(S*(M<=2)) AS Февраль, 
 SUM(S*(M<=3)) AS Март, 
 SUM(S*(M<=4)) AS Апрель, 
 SUM(S*(M<=5)) AS Май, 
 SUM(S*(M<=6)) AS Июнь, 
 SUM(S*(M<=7)) AS Июль, 
 SUM(S*(M<=8)) AS Август, 
 SUM(S*(M<=9)) AS Сентябрь, 
 SUM(S*(M<=10)) AS Октябрь, 
 SUM(S*(M<=11)) AS Ноябрь, 
 SUM(S*(M<=12)) AS Декабрь
FROM
(SELECT Center,
 SUM(
 -IncomeAmount  * (ManagerPayCalc = 'Закрыт' AND TransactionType = 'Поступления')
 +PaymentAmount * (ManagerPayCalc = 'Закрыт' AND TransactionType = 'Затраты по заявке')
 +PaymentAmount * (TransactionType = 'Расходы прочие')
 +PaymentAmount * (ManagerPayCalc = 'Прибыль, дивиденды')
) AS S,
 Month(PaymentDate) AS M,
 Year(PaymentDate)=2014 AS Y
FROM
 qdfPayments
WHERE Year(PaymentDate)<=2014 And Center IS NOT NULL
GROUP BY Center,
)

...
Рейтинг: 0 / 0
Access. Sql подзапросы как сделать??(((
    #39169698
Ainur.sm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Шыфл, НЕ выходит. И ошибка при загрузке БД.
...
Рейтинг: 0 / 0
Access. Sql подзапросы как сделать??(((
    #39169711
Ainur.sm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ainur.sm,
...
Рейтинг: 0 / 0
Access. Sql подзапросы как сделать??(((
    #39169753
Ainur.sm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Шыфл,

Да. данные за 2014 год.
а код считает только январь месяц 2000 и как нарастающий итог у всех 20000
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
SELECT 'Нераспределенная прибыль' AS ПАССИВ,
-SUM(S*(NOT Y)) AS Итог_2014,
 SUM(S*(M=1)*Y)+Итог_2014 AS Январь,
 SUM(S*(M=2)*Y)+Январь AS Февраль, 
 SUM(S*(M=3)*Y)+Февраль AS Март, 
 SUM(S*(M=4)*Y)+Март AS Апрель, 
 SUM(S*(M=5)*Y)+Апрель AS Май, 
 SUM(S*(M=6)*Y)+Май AS Июнь, 
 SUM(S*(M=7)*Y)+Июнь AS Июль, 
 SUM(S*(M=8)*Y)+Июль AS Август, 
 SUM(S*(M=9)*Y)+Август AS Сентябрь, 
 SUM(S*(M=10)*Y)+Сентябрь AS Октябрь, 
 SUM(S*(M=11)*Y)+Октябрь AS Ноябрь, 
 SUM(S*(M=12)*Y)+Ноябрь AS Декабрь
FROM
(SELECT Center, 
 -IncomeAmount  * (ManagerPayCalc = 'Закрыт' AND TransactionType = 'Поступления')
 +PaymentAmount * (ManagerPayCalc = 'Закрыт' AND TransactionType = 'Затраты по заявке')
 +PaymentAmount * (TransactionType = 'Расходы прочие')
 +PaymentAmount * (ManagerPayCalc = 'Прибыль, дивиденды') AS S,
 Month(PaymentDate) AS M,
 Year(PaymentDate)=2014 AS Y
FROM
 qdfPayments
WHERE Year(PaymentDate)<=2014 And Center IS NOT NULL
)
...
Рейтинг: 0 / 0
Access. Sql подзапросы как сделать??(((
    #39169785
Ainur.sm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ainur.sm,

-100 000 он не вычитывает.
...
Рейтинг: 0 / 0
Access. Sql подзапросы как сделать??(((
    #39169983
Ainur.sm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ainur.sm,
...
Рейтинг: 0 / 0
Access. Sql подзапросы как сделать??(((
    #39169984
Ainur.sm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Шыфл,

Ainur.smAinur.sm,
...
Рейтинг: 0 / 0
Access. Sql подзапросы как сделать??(((
    #39169999
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ainur.sm,

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
SELECT 'Нераспределенная прибыль' AS ПАССИВ, 
 -SUM(S*(NOT Y)) AS Итог_2014,
 - SUM(S*(M=1)*Y)+Итог_2014 AS Январь,
 - SUM(S*(M=2)*Y)+Январь AS Февраль, 
- SUM(S*(M=3)*Y)+Февраль AS Март, 
- SUM(S*(M=4)*Y)+Март AS Апрель, 
- SUM(S*(M=5)*Y)+Апрель AS Май, 
- SUM(S*(M=6)*Y)+Май AS Июнь, 
- SUM(S*(M=7)*Y)+Июнь AS Июль, 
- SUM(S*(M=8)*Y)+Июль AS Август, 
- SUM(S*(M=9)*Y)+Август AS Сентябрь, 
- SUM(S*(M=10)*Y)+Сентябрь AS Октябрь, 
- SUM(S*(M=11)*Y)+Октябрь AS Ноябрь,
 - SUM(S*(M=12)*Y)+Ноябрь AS Декабрь
FROM (SELECT Center,

nz(-IncomeAmount  * (ManagerPayCalc = 'Закрыт' AND TransactionType = 'Поступления'),0)+
nz( +PaymentAmount * (ManagerPayCalc = 'Закрыт' AND TransactionType = 'Затраты по заявке'),0) +
nz(+PaymentAmount * (TransactionType = 'Расходы прочие'),0) +
nz( +PaymentAmount * (ManagerPayCalc = 'Прибыль, дивиденды'),0) AS S,


 Month(PaymentDate) AS M, Year(PaymentDate)=2015 AS Y FROM qdfPayments WHERE Year(PaymentDate)<=2015 And Center IS NOT NULL)  AS [%$##@_Alias]
GROUP BY 'Нераспределенная прибыль'



ПАССИВИтог_2014ЯнварьФевральМартАпрельМайИюньИюльАвгустСентябрьОктябрьНоябрьДекабрьНераспределенная прибыль100000100000100000100000100000100000100000100200100200100200100200100200100200
...
Рейтинг: 0 / 0
Access. Sql подзапросы как сделать??(((
    #39170551
Ainur.sm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ПЕНСИОНЕРКА,
Спасибо. Есть другие варианты ?
...
Рейтинг: 0 / 0
Access. Sql подзапросы как сделать??(((
    #39170569
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ainur.sm,

чтобы не думать о незаполненных полях видимо заменила бы 4 строки с nz на 8
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
ManagerPayCalc & "" as ManagerPayCalc2,
TransactionType & "" as TransactionType2,
nz(IncomeAmount,0) as IncomeAmount2,
nz(PaymentAmount,0) as PaymentAmount2,

iif (ManagerPayCalc2 = 'Закрыт' AND TransactionType2 = 'Поступления',IncomeAmount2,0)
-iif(ManagerPayCalc2 = 'Закрыт' AND TransactionType2 = 'Затраты по заявке',PaymentAmount2,0)
-iif(TransactionType2 = 'Расходы прочие',PaymentAmount2,0)
-iif(ManagerPayCalc2 = 'Прибыль, дивиденды',PaymentAmount2,0) as s,
...
Рейтинг: 0 / 0
Access. Sql подзапросы как сделать??(((
    #39171313
Ainur.sm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ПЕНСИОНЕРКАAinur.sm,

чтобы не думать о незаполненных полях видимо заменила бы 4 строки с nz на 8
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
ManagerPayCalc & "" as ManagerPayCalc2,
TransactionType & "" as TransactionType2,
nz(IncomeAmount,0) as IncomeAmount2,
nz(PaymentAmount,0) as PaymentAmount2,

iif (ManagerPayCalc2 = 'Закрыт' AND TransactionType2 = 'Поступления',IncomeAmount2,0)
-iif(ManagerPayCalc2 = 'Закрыт' AND TransactionType2 = 'Затраты по заявке',PaymentAmount2,0)
-iif(TransactionType2 = 'Расходы прочие',PaymentAmount2,0)
-iif(ManagerPayCalc2 = 'Прибыль, дивиденды',PaymentAmount2,0) as s,



А Это как*??


Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
SELECT 'Нераспределенная прибыль' AS ПАССИВ, 
-SUM(S*(NOT Y)) AS Итог_2014,
SUM(S*(M=1)*Y)+Итог_2014 AS Январь,
SUM(S*(M=2)*Y)+Январь AS Февраль, 
SUM(S*(M=3)*Y)+Февраль AS Март, 
SUM(S*(M=4)*Y)+Март AS Апрель, 
SUM(S*(M=5)*Y)+Апрель AS Май, 
SUM(S*(M=6)*Y)+Май AS Июнь, 
SUM(S*(M=7)*Y)+Июнь AS Июль, 
SUM(S*(M=8)*Y)+Июль AS Август, 
SUM(S*(M=9)*Y)+Август AS Сентябрь, 
SUM(S*(M=10)*Y)+Сентябрь AS Октябрь, 
SUM(S*(M=11)*Y)+Октябрь AS Ноябрь,
SUM(S*(M=12)*Y)+Ноябрь AS Декабрь
FROM (SELECT Center,
 ManagerPayCalc & "" as ManagerPayCalc2,
TransactionType & "" as TransactionType2,
nz(IncomeAmount,0) as IncomeAmount2,
nz(PaymentAmount,0) as PaymentAmount2,

iif (ManagerPayCalc2 = 'Закрыт' AND TransactionType2 = 'Поступления',IncomeAmount2,0)
-iif(ManagerPayCalc2 = 'Закрыт' AND TransactionType2 = 'Затраты по заявке',PaymentAmount2,0)
-iif(TransactionType2 = 'Расходы прочие',PaymentAmount2,0)
-iif(ManagerPayCalc2 = 'Прибыль, дивиденды',PaymentAmount2,0) as S
Month(PaymentDate) AS M, Year(PaymentDate)=2015 AS Y FROM qdfPayments WHERE Year(PaymentDate)<=2015 And Center IS NOT NULL)  AS [%$##@_Alias]
GROUP BY 'Нераспределенная прибыль' 
...
Рейтинг: 0 / 0
Access. Sql подзапросы как сделать??(((
    #39171319
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ainur.sm,
вы бы лучше выложили форму реального отчета(лишние конфы можно забить)
а то вторую неделю речь об одном и том же

вам дали удобную форму подзапроса
остальное зависит от того --что же надо вывести

и одними запросами вряд ли обойдетесь --придется писать код
...
Рейтинг: 0 / 0
Access. Sql подзапросы как сделать??(((
    #39171324
Ainur.sm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ПЕНСИОНЕРКА,
Код правильный. Работает в программе Access. Но проблема в том что. NZ своей программе он не понимает что за NZ
Можно сделать этот же запрос по другому?

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
SELECT 'Нераспределенная прибыль' AS ПАССИВ, 
-SUM(S*(NOT Y)) AS Итог_2014,
SUM(S * (M = 1) * Y) + Итог_2014 AS Январь,
SUM(S * (M = 2) * Y) + Январь AS Февраль, 
SUM(S * (M = 3) * Y) + Февраль AS Март, 
SUM(S * (M = 4) * Y) + Март AS Апрель, 
SUM(S * (M = 5) * Y) + Апрель AS Май, 
SUM(S * (M = 6) * Y) + Май AS Июнь, 
SUM(S * (M = 7) * Y) + Июнь AS Июль, 
SUM(S * (M = 8) * Y) + Июль AS Август, 
SUM(S * (M = 9) * Y) + Август AS Сентябрь, 
SUM(S * (M = 10) * Y) + Сентябрь AS Октябрь, 
SUM(S * (M = 11) * Y) + Октябрь AS Ноябрь,
SUM(S * (M = 12) * Y) + Ноябрь AS Декабрь
FROM (select Center,
- NZ( + IncomeAmount * (ManagerPayCalc = 'Закрыт' and TransactionType = 'Поступления'),0)+
+ NZ( + PaymentAmount * (ManagerPayCalc = 'Закрыт' and TransactionType = 'Затраты по заявке'),0) +
+ NZ( + PaymentAmount * (TransactionType = 'Расходы прочие'),0) +
+ NZ( + PaymentAmount * (ManagerPayCalc = 'Прибыль, дивиденды'),0) AS S,
Month(PaymentDate) AS M, Year(PaymentDate)=2015 AS Y FROM qdfPayments where Year(PaymentDate)<=2015 AND Center is not null) AS [Al]
GROUP BY 'Нераспределенная прибыль'
...
Рейтинг: 0 / 0
Access. Sql подзапросы как сделать??(((
    #39171328
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ainur.sm,

я же в какой то теме ответила через IIF
У вас столько много одинаковых тем, что я уже не могу найти --где/что отвечала
...
Рейтинг: 0 / 0
Access. Sql подзапросы как сделать??(((
    #39171330
Ainur.sm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ПЕНСИОНЕРКА, есть ли замена NZ?
...
Рейтинг: 0 / 0
Access. Sql подзапросы как сделать??(((
    #39171331
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ainur.sm,

оказывается в этой теме от 14-05 сегодня
...
Рейтинг: 0 / 0
Access. Sql подзапросы как сделать??(((
    #39171341
Ainur.sm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ПЕНСИОНЕРКА, NZ можно заменить? или как?
...
Рейтинг: 0 / 0
Access. Sql подзапросы как сделать??(((
    #39171351
Шыфл
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ainur.sm,

Код: sql
1.
Nz(Value,0)=iif(Value is null, 0, Value)
...
Рейтинг: 0 / 0
25 сообщений из 36, страница 1 из 2
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Access. Sql подзапросы как сделать??(((
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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