|
Access. Вывести отчет по месяцам.
|
|||
---|---|---|---|
#18+
Добрый день. Отчет по месяцам. См. скриншот. Надо сделать так, чтоб на одном линии были все отчеты. Убрать нули. Как это сделать? исходный код: SELECT IIf(Month(PaymentDate)=1 And Year(PaymentDate)=2015,SUM(qdfPayments.IncomeAmount),0) AS Jun, IIf(Month(PaymentDate)=2 And Year(PaymentDate)=2015,SUM(qdfPayments.IncomeAmount),0) AS Feb, IIf(Month(PaymentDate)=3 And Year(PaymentDate)=2015,SUM(qdfPayments.IncomeAmount),0) AS March, IIf(Month(PaymentDate)=4 And Year(PaymentDate)=2015,SUM(qdfPayments.IncomeAmount),0) AS Apr, IIf(Month(PaymentDate)=5 And Year(PaymentDate)=2015,SUM(qdfPayments.IncomeAmount),0) AS May, IIf(Month(PaymentDate)=6 And Year(PaymentDate)=2015,SUM(qdfPayments.IncomeAmount),0) AS June, IIf(Month(PaymentDate)=7 And Year(PaymentDate)=2015,SUM(qdfPayments.IncomeAmount),0) AS July, IIf(Month(PaymentDate)=8 And Year(PaymentDate)=2015,SUM(qdfPayments.IncomeAmount),0) AS Aug, IIf(Month(PaymentDate)=9 And Year(PaymentDate)=2015,SUM(qdfPayments.IncomeAmount),0) AS Sept, IIf(Month(PaymentDate)=10 And Year(PaymentDate)=2015,SUM(qdfPayments.IncomeAmount),0) AS Oct, IIf(Month(PaymentDate)=11 And Year(PaymentDate)=2015,SUM(qdfPayments.IncomeAmount),0) AS Dov, IIf(Month(PaymentDate)=12 And Year(PaymentDate)=2015,SUM(qdfPayments.IncomeAmount),0) AS [Dec] FROM qdfPayments GROUP BY Month(PaymentDate), Year(PaymentDate); ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2016, 10:10 |
|
Access. Вывести отчет по месяцам.
|
|||
---|---|---|---|
#18+
Ainur.sm, в таблице имеются данные за январь и февраль месяц. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2016, 10:28 |
|
Access. Вывести отчет по месяцам.
|
|||
---|---|---|---|
#18+
Сначала можно немножко упростить запись запроса Код: sql 1. 2. 3. 4. 5. 6. 7. 8.
... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2016, 10:53 |
|
Access. Вывести отчет по месяцам.
|
|||
---|---|---|---|
#18+
__Michelle, Результат вышел с "-". ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2016, 11:09 |
|
Access. Вывести отчет по месяцам.
|
|||
---|---|---|---|
#18+
Ainur.sm, А Вы обратили внимание на -Sum (с минусом) в запросе? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2016, 11:17 |
|
Access. Вывести отчет по месяцам.
|
|||
---|---|---|---|
#18+
Ainur.sm, И еще, сразу упустила - уберите группировку в моем варианте запроса. Результат будет в одну строку. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2016, 11:21 |
|
Access. Вывести отчет по месяцам.
|
|||
---|---|---|---|
#18+
__Michelle, Да. Я убрала. Но результат мне нужен, чтоб было на одной строке. январь февраль 400 100 SELECT Sum(qdfPayments.IncomeAmount*(Month(PaymentDate)=1)) As Jun, Sum(qdfPayments.IncomeAmount*(Month(PaymentDate)=2)) As Feb, Sum(qdfPayments.IncomeAmount*(Month(PaymentDate)=3)) As March FROM qdfPayments WHERE Year(PaymentDate) = 2015 GROUP BY Month(PaymentDate), Year(PaymentDate); ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2016, 11:23 |
|
Access. Вывести отчет по месяцам.
|
|||
---|---|---|---|
#18+
Ainur.sm, Минус убрала?))) Как раз-таки этого делать не нужно. Он на месте. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2016, 11:27 |
|
Access. Вывести отчет по месяцам.
|
|||
---|---|---|---|
#18+
__Michelle, Где минус? вот код. Результат -400 -100 SELECT Sum(qdfPayments.IncomeAmount*(Month(PaymentDate)=1)) As Jun, Sum(qdfPayments.IncomeAmount*(Month(PaymentDate)=2)) As Feb, Sum(qdfPayments.IncomeAmount*(Month(PaymentDate)=3)) As March FROM qdfPayments WHERE Year(PaymentDate) = 2015 ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2016, 11:29 |
|
Access. Вывести отчет по месяцам.
|
|||
---|---|---|---|
#18+
Ainur.sm__Michelle, Где минус? вот код. Результат -400 -100 SELECT Sum(qdfPayments.IncomeAmount*(Month(PaymentDate)=1)) As Jun, Sum(qdfPayments.IncomeAmount*(Month(PaymentDate)=2)) As Feb, Sum(qdfPayments.IncomeAmount*(Month(PaymentDate)=3)) As March FROM qdfPayments WHERE Year(PaymentDate) = 2015Вот здесь минус(ы) 18739144 . А у Вас их нет. Будьте внимательнее. -Sum , что стоит в начале, видите? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2016, 11:34 |
|
Access. Вывести отчет по месяцам.
|
|||
---|---|---|---|
#18+
__Michelle, Всё добавила. Спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2016, 11:40 |
|
Access. Вывести отчет по месяцам.
|
|||
---|---|---|---|
#18+
__Michelle, А как создать след строку с такими параметрами только другими вычислениями SUM()? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2016, 11:57 |
|
Access. Вывести отчет по месяцам.
|
|||
---|---|---|---|
#18+
Ainur.sm, Объединить результаты (строки) с помощью UNION ALL. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2016, 12:01 |
|
Access. Вывести отчет по месяцам.
|
|||
---|---|---|---|
#18+
__Michelle, Всё получилось. А как сделать Разница итогов строки "Выручка" и строки "Себестоимость" по месяцам SELECT 1 AS ID, 'Выручка' AS Operation, -Sum(qdfPayments.IncomeAmount*(Month(PaymentDate)=1)) AS Jun, -Sum(qdfPayments.IncomeAmount*(Month(PaymentDate)=2)) AS Feb, -Sum(qdfPayments.IncomeAmount*(Month(PaymentDate)=3)) AS March, -Sum(qdfPayments.IncomeAmount*(Month(PaymentDate)=4)) AS Apr, -Sum(qdfPayments.IncomeAmount*(Month(PaymentDate)=5)) AS May, -Sum(qdfPayments.IncomeAmount*(Month(PaymentDate)=6)) AS June, -Sum(qdfPayments.IncomeAmount*(Month(PaymentDate)=7)) AS Jul, -Sum(qdfPayments.IncomeAmount*(Month(PaymentDate)=8)) AS [Avg], -Sum(qdfPayments.IncomeAmount*(Month(PaymentDate)=9)) AS Sept, -Sum(qdfPayments.IncomeAmount*(Month(PaymentDate)=10)) AS Oct, -Sum(qdfPayments.IncomeAmount*(Month(PaymentDate)=11)) AS Nov, -Sum(qdfPayments.IncomeAmount*(Month(PaymentDate)=12)) AS [Dec] FROM qdfPayments WHERE (((Year([PaymentDate]))=2015) AND ((qdfPayments.ManagerPayCalc)='Закрыт') AND ((qdfPayments.TransactionType)='Поступления')) UNION SELECT 2 AS ID, 'Себестоимость' AS Operation, -Sum(qdfPayments.PaymentAmount*(Month(PaymentDate)=1)) As Jun, - Sum(qdfPayments.PaymentAmount*(Month(PaymentDate)=2)) As Feb, -Sum(qdfPayments.PaymentAmount*(Month(PaymentDate)=3)) As March, -Sum(qdfPayments.PaymentAmount*(Month(PaymentDate)=4)) As Apr, -Sum(qdfPayments.PaymentAmount*(Month(PaymentDate)=5)) As May, -Sum(qdfPayments.PaymentAmountt*(Month(PaymentDate)=6)) As June, -Sum(qdfPayments.PaymentAmountt*(Month(PaymentDate)=7)) As Jul, -Sum(qdfPayments.PaymentAmountt*(Month(PaymentDate)=8)) As Avg, -Sum(qdfPayments.PaymentAmount*(Month(PaymentDate)=9)) As Sept, - Sum(qdfPayments.PaymentAmount*(Month(PaymentDate)=10)) As Oct, -Sum(qdfPayments.PaymentAmount*(Month(PaymentDate)=11)) As Nov, -Sum(qdfPayments.PaymentAmount*(Month(PaymentDate)=12)) As Dec FROM qdfPayments WHERE Year(PaymentDate) = 2015 AND qdfPayments.ManagerPayCalc = 'Закрыт' AND qdfPayments.TransactionType = 'Затраты по заявке' UNION SELECT 3 AS ID, 'Расходы прочие' AS Operation, -Sum(qdfPayments.PaymentAmount*(Month(PaymentDate)=1)) As Jun, - Sum(qdfPayments.PaymentAmount*(Month(PaymentDate)=2)) As Feb, -Sum(qdfPayments.PaymentAmount*(Month(PaymentDate)=3)) As March, -Sum(qdfPayments.PaymentAmount*(Month(PaymentDate)=4)) As Apr, -Sum(qdfPayments.PaymentAmount*(Month(PaymentDate)=5)) As May, -Sum(qdfPayments.PaymentAmountt*(Month(PaymentDate)=6)) As June, -Sum(qdfPayments.PaymentAmountt*(Month(PaymentDate)=7)) As Jul, -Sum(qdfPayments.PaymentAmountt*(Month(PaymentDate)=8)) As Avg, -Sum(qdfPayments.PaymentAmount*(Month(PaymentDate)=9)) As Sept, - Sum(qdfPayments.PaymentAmount*(Month(PaymentDate)=10)) As Oct, -Sum(qdfPayments.PaymentAmount*(Month(PaymentDate)=11)) As Nov, -Sum(qdfPayments.PaymentAmount*(Month(PaymentDate)=12)) As Dec FROM qdfPayments WHERE Year(PaymentDate) = 2015 AND qdfPayments.TransactionType = 'Расходы прочие' UNION SELECT 4 AS ID, 'Распределенная прибыль' AS Operation, -Sum(qdfPayments.PaymentAmount*(Month(PaymentDate)=1)) As Jun, - Sum(qdfPayments.PaymentAmount*(Month(PaymentDate)=2)) As Feb, -Sum(qdfPayments.PaymentAmount*(Month(PaymentDate)=3)) As March, -Sum(qdfPayments.PaymentAmount*(Month(PaymentDate)=4)) As Apr, -Sum(qdfPayments.PaymentAmount*(Month(PaymentDate)=5)) As May, -Sum(qdfPayments.PaymentAmountt*(Month(PaymentDate)=6)) As June, -Sum(qdfPayments.PaymentAmountt*(Month(PaymentDate)=7)) As Jul, -Sum(qdfPayments.PaymentAmountt*(Month(PaymentDate)=8)) As Avg, -Sum(qdfPayments.PaymentAmount*(Month(PaymentDate)=9)) As Sept, - Sum(qdfPayments.PaymentAmount*(Month(PaymentDate)=10)) As Oct, -Sum(qdfPayments.PaymentAmount*(Month(PaymentDate)=11)) As Nov, -Sum(qdfPayments.PaymentAmount*(Month(PaymentDate)=12)) As Dec FROM qdfPayments WHERE Year(PaymentDate) = 2015 AND qdfPayments.TransactionType = 'Прибыль, дивиденды' ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2016, 12:36 |
|
Access. Вывести отчет по месяцам.
|
|||
---|---|---|---|
#18+
Ainur.sm, Вообще-то удобнее в Excele ^_^. A так вообще - тем же union all. Что-то типа Код: sql 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2016, 14:19 |
|
Access. Вывести отчет по месяцам.
|
|||
---|---|---|---|
#18+
Шыфл, Ошибка синтаксиса в запросе на объединение. не получается ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2016, 14:33 |
|
Access. Вывести отчет по месяцам.
|
|||
---|---|---|---|
#18+
Ainur.sm, ну, так исправте её исходя из основной идеи. :) Может так Код: sql 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2016, 14:47 |
|
Access. Вывести отчет по месяцам.
|
|||
---|---|---|---|
#18+
Шыфл, Спасибо, получилось код: -Sum(qdfPayments.IncomeAmount*(Month(PaymentDate)=1 and qdfPayments.ManagerPayCalc = 'Закрыт' AND qdfPayments.TransactionType = 'Поступления') ) + Sum(qdfPayments.IncomeAmount*(Month(PaymentDate)=1 and qdfPayments.ManagerPayCalc = 'Закрыт' AND qdfPayments.TransactionType = 'Затраты по заявке') )AS Jun, ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2016, 14:55 |
|
Access. Вывести отчет по месяцам.
|
|||
---|---|---|---|
#18+
Ainur.sm, я бы сделала так Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
годктипнаим_тип"итого"01 янв02 фев03 мар04 апр05 май06 июн07 июл08 авг09 сен10 окт11 ноя12 дек20151выручка740112100968480686452483620152себестоим3801089276604420153прочее3601048872564020154распределенная прибыль360410096-928446864-605243620161выручка323220164распределенная прибыль3232 ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2016, 15:41 |
|
|
start [/forum/topic.php?fid=45&msg=39157257&tid=1614009]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
35ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
others: | 335ms |
total: | 472ms |
0 / 0 |