Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Access. Sql подзапросы как сделать??((( / 25 сообщений из 36, страница 1 из 2
11.02.2016, 18:26
    #39168907
Ainur.sm
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access. Sql подзапросы как сделать??(((
Код: 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
11.02.2016, 18:38
    #39168923
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access. Sql подзапросы как сделать??(((
А вопрос-то где? И зачем это многоэтажное безобразие - без постановки задачи и структур хранения данных?
...
Рейтинг: 0 / 0
11.02.2016, 18:45
    #39168928
Ainur.sm
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access. Sql подзапросы как сделать??(((
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
11.02.2016, 18:51
    #39168935
Predeclared
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access. Sql подзапросы как сделать??(((
Akina... без постановки задачи ...
Сломать Jet-у моск Определение границ возможностей запросов Jet SQL.
:)
...
Рейтинг: 0 / 0
12.02.2016, 09:05
    #39169234
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access. Sql подзапросы как сделать??(((
В рамках именно MS Access считаю наиболее правильным формирование отдельного статического запроса "Итоги за прошлый год". И использование его в запросе в качестве одного из источников данных. А если корректировка таких данных исключена - то и формирование статической таблицы баланса на начало года.
...
Рейтинг: 0 / 0
12.02.2016, 11:55
    #39169407
Шыфл
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access. Sql подзапросы как сделать??(((
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
12.02.2016, 12:19
    #39169447
Ainur.sm
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access. Sql подзапросы как сделать??(((
Шыфл,

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

Июнь месяц -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
12.02.2016, 12:31
    #39169461
Шыфл
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access. Sql подзапросы как сделать??(((
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
12.02.2016, 16:19
    #39169698
Ainur.sm
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access. Sql подзапросы как сделать??(((
Шыфл, НЕ выходит. И ошибка при загрузке БД.
...
Рейтинг: 0 / 0
12.02.2016, 16:32
    #39169711
Ainur.sm
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access. Sql подзапросы как сделать??(((
Ainur.sm,
...
Рейтинг: 0 / 0
12.02.2016, 17:07
    #39169753
Ainur.sm
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access. Sql подзапросы как сделать??(((
Шыфл,

Да. данные за 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
12.02.2016, 17:32
    #39169785
Ainur.sm
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access. Sql подзапросы как сделать??(((
Ainur.sm,

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

Ainur.smAinur.sm,
...
Рейтинг: 0 / 0
12.02.2016, 22:28
    #39169999
ПЕНСИОНЕРКА
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access. Sql подзапросы как сделать??(((
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
13.02.2016, 23:57
    #39170551
Ainur.sm
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access. Sql подзапросы как сделать??(((
ПЕНСИОНЕРКА,
Спасибо. Есть другие варианты ?
...
Рейтинг: 0 / 0
14.02.2016, 00:56
    #39170569
ПЕНСИОНЕРКА
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access. Sql подзапросы как сделать??(((
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
15.02.2016, 14:05
    #39171313
Ainur.sm
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access. Sql подзапросы как сделать??(((
ПЕНСИОНЕРКА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
15.02.2016, 14:13
    #39171319
ПЕНСИОНЕРКА
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access. Sql подзапросы как сделать??(((
Ainur.sm,
вы бы лучше выложили форму реального отчета(лишние конфы можно забить)
а то вторую неделю речь об одном и том же

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

и одними запросами вряд ли обойдетесь --придется писать код
...
Рейтинг: 0 / 0
15.02.2016, 14:20
    #39171324
Ainur.sm
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access. Sql подзапросы как сделать??(((
ПЕНСИОНЕРКА,
Код правильный. Работает в программе 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
15.02.2016, 14:29
    #39171328
ПЕНСИОНЕРКА
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access. Sql подзапросы как сделать??(((
Ainur.sm,

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

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

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


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