|
Access. Надо сделать нарастающий итог по месяцам чтобы учитывался за предыдущие года
|
|||
---|---|---|---|
#18+
за 2014 Center -----январь---Февраль--Итого Машина------200------400--------400 за 2015 должен + итог 2014 год Center -----январь---------Февраль-----------------------------Итого Машина------400+200------400+200+400=1000 ВЫШЛА ОШИБКА!!!! КАК решить проблему?? Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2016, 14:10 |
|
Access. Надо сделать нарастающий итог по месяцам чтобы учитывался за предыдущие года
|
|||
---|---|---|---|
#18+
Ainur.sm, нельзя повторять имя Код: sql 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2016, 15:23 |
|
Access. Надо сделать нарастающий итог по месяцам чтобы учитывался за предыдущие года
|
|||
---|---|---|---|
#18+
Ainur.sm, Код: sql 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2016, 15:25 |
|
Access. Надо сделать нарастающий итог по месяцам чтобы учитывался за предыдущие года
|
|||
---|---|---|---|
#18+
ПЕНСИОНЕРКА, В чем ошибка? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2016, 15:34 |
|
Access. Надо сделать нарастающий итог по месяцам чтобы учитывался за предыдущие года
|
|||
---|---|---|---|
#18+
В выражениях запроса можно использовать имена вычисляемых полей, расположенных левее, а у вас в поле "Январь" используется "Итого", расположенное гораздо правее, потому и ошибка. К тому же, с чего вы взяли, что ваше "Итого" (оно же "Декабрь") будет за 2014 г.? Как по мне, при WHERE Year(PaymentDate) <=2015 во всех ваших выражениях будут суммироваться все значения соответствующего месяца за все годы. Может вам нужно так?: Код: plsql 1. 2. 3. 4.
Кстати, если поле PaymentDate индексировано и записей много, то вместо: WHERE Year(PaymentDate) <=2015 лучше применить (быстрее работает): WHERE PaymentDate <= #2015/12/31# ... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2016, 16:01 |
|
Access. Надо сделать нарастающий итог по месяцам чтобы учитывался за предыдущие года
|
|||
---|---|---|---|
#18+
Анатолий ( Киев ), нет..... год потом в фильтре вводятся. для примера я взяла 2015 год Код: sql 1. 2. 3.
нахождение итого мне надо + Январь Код: sql 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2016, 16:07 |
|
Access. Надо сделать нарастающий итог по месяцам чтобы учитывался за предыдущие года
|
|||
---|---|---|---|
#18+
Вообще-то этот вопрос и пример из другой вашей ветки... Подчиненный запрос, используемый в разделе перечисления полей (между SELECT и FROM) должен возвращать только одно поле и только одну запись. У вас же два поля и несколько записей. Потому и ошибка. Вам нужно включить подзапрос в раздел FROM в качестве второго источника и связать его по Center с qdfPayments. Кстати, вы уверены, что в подзапросе условие <=2015 правильное? Может нужно <2015? В моем предыдущем ответе сумма по каждому месяцу учитывается с накоплением за весь предыдущий период по этот месяц включительно. Вроде то, что вам нужно. И подзапрос не нужен. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2016, 17:42 |
|
Access. Надо сделать нарастающий итог по месяцам чтобы учитывался за предыдущие года
|
|||
---|---|---|---|
#18+
Анатолий ( Киев ), мне нужно чтоб Итог до 2015 года +январь за 2015 года. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2016, 20:29 |
|
Access. Надо сделать нарастающий итог по месяцам чтобы учитывался за предыдущие года
|
|||
---|---|---|---|
#18+
Ainur.smАнатолий ( Киев ), мне нужно чтоб Итог до 2015 года +январь за 2015 года. так можно Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2016, 22:45 |
|
Access. Надо сделать нарастающий итог по месяцам чтобы учитывался за предыдущие года
|
|||
---|---|---|---|
#18+
непоймучка, Спасибо! Только вопрос после компиляции выводит это [%$##@_A] почему ? можно ли заменить это? Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2016, 10:29 |
|
Access. Надо сделать нарастающий итог по месяцам чтобы учитывался за предыдущие года
|
|||
---|---|---|---|
#18+
непоймучка, Надо сделать тоже самое только здесь присутствует ("-" и "+") И условия Код: 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.
попробовала сделать итог 2014 года и январь 2015 Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9.
... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2016, 11:31 |
|
Access. Надо сделать нарастающий итог по месяцам чтобы учитывался за предыдущие года
|
|||
---|---|---|---|
#18+
Результаты 0,0,0. В чем проблема?? Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
Ainur.sm, ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2016, 12:09 |
|
Access. Надо сделать нарастающий итог по месяцам чтобы учитывался за предыдущие года
|
|||
---|---|---|---|
#18+
Ainur.smнепоймучка, Спасибо! Только вопрос после компиляции выводит это [%$##@_A] почему ? можно ли заменить это? нельзя, так работает построитель запросов, он вообще не особо стремится сохранить авторский формат SQL-текста. вообще перед публикацией на форуме лучше позаботиться и форматировать тексты вручную, иначе для особо длинных запросов сложно читать "стену текста" ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2016, 13:46 |
|
Access. Надо сделать нарастающий итог по месяцам чтобы учитывался за предыдущие года
|
|||
---|---|---|---|
#18+
во-первых: Ainur.sm попробовала сделать итог 2014 года и январь 2015 Код: plsql 1. 2. 3. 4. 5. 6.
теперь смотрим, что я выше написал (для того же самого периода) - и сравниваем непоймучкаAinur.smмне нужно чтоб Итог до 2015 года +январь за 2015 года так можно Код: sql 1. 2. 3. 4. 5.
обратите на выделенные с запросах значения ГОДА и ответьте себе: с какого перепугу ваш запрос будет что-то делать на "январь 2015", если в вашем варианте условие (<=2014) вообще исключает записи 2015 года? ваш запрос (в лучшем случае - т.е. если бы там не было иных ошибок и он сработал) посчитал бы вам итог 2013 года и январь 2014 ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2016, 14:23 |
|
Access. Надо сделать нарастающий итог по месяцам чтобы учитывался за предыдущие года
|
|||
---|---|---|---|
#18+
непоймучка, Спасибо. я разобралась. Теперь мне надо рассчитать "Нераспределенная прибыль" где присутствует условия..... Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2016, 14:38 |
|
Access. Надо сделать нарастающий итог по месяцам чтобы учитывался за предыдущие года
|
|||
---|---|---|---|
#18+
Ainur.smнепоймучка, Спасибо. я разобралась. Теперь мне надо рассчитать "Нераспределенная прибыль" где присутствует условия..... Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
чтобы понять проблему, вам надо ЯСНО понимать, что вы тут написали у вас тут где-то -SUM, а где-то +SUM - вы понимаете, почему именно так? вы ясно понимаете, КАК работают написанные там выражения? если нет, то чтобы понять из чего "сложился" ваш 0 исследуйте для начала в запросе сумму, из которой складывается этот столбец: Код: vbnet 1. 2. 3. 4. 5. 6.
напишите это в виде отдельных слагаемых столбцов: Код: vbnet 1. 2. 3. 4. 5. 6. 7.
и посмотрите результат, который дает вам каждое слагаемое вашего выражения - возможно, что-то прояснится ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2016, 15:17 |
|
Access. Надо сделать нарастающий итог по месяцам чтобы учитывался за предыдущие года
|
|||
---|---|---|---|
#18+
непоймучка,вышли 0 0 0 Код: sql 1. 2. 3. 4. 5. 6. 7. 8.
... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2016, 15:51 |
|
Access. Надо сделать нарастающий итог по месяцам чтобы учитывался за предыдущие года
|
|||
---|---|---|---|
#18+
Ainur.sm, может надо Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2016, 17:01 |
|
Access. Надо сделать нарастающий итог по месяцам чтобы учитывался за предыдущие года
|
|||
---|---|---|---|
#18+
Ainur.smнепоймучка,вышли 0 0 0 Код: sql 1. 2. 3. 4. 5. 6. 7. 8.
ну тогда одно из двух: 1) либо у вас нет записей, удовлетоворяющих указанным критериям в WHERE 2) либо записи есть, но все суммируемые значения (которые дает выражение внутри SUM) получаются нулевыми (например, из-за того что логический критерий-множитель нулевой) Вот вы не ответили - понимаете ли вы как считают написанное вами выражение, а зря, ибо я думаю, что тут дело, скорее всего в том, что вы заблуждаетесь, полагая, что понимаете. Для того чтобы понять почему "вышли 0 0 0", предлагаю вам еще более углубиться в суть вашего вашего выражения и рассмотреть - чему равны значения отдельных частей суммируемого значения, например для первой формулы (F1) Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
посмотрите на результат, возможно, что-то прояснится ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2016, 17:08 |
|
Access. Надо сделать нарастающий итог по месяцам чтобы учитывался за предыдущие года
|
|||
---|---|---|---|
#18+
непоймучка, ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2016, 18:11 |
|
Access. Надо сделать нарастающий итог по месяцам чтобы учитывался за предыдущие года
|
|||
---|---|---|---|
#18+
Ainur.sm, ну вот, ваша картинка демонстрирует причину вашего нуля в сумме - как и было сказано чуть выше: непоймучкалибо записи есть, но все суммируемые значения (которые дает выражение внутри SUM) получаются нулевыми (например, из-за того что логический критерий-множитель нулевой )А именно: множитель (NOT Y), который во всех записях у вас равен нулю, в итоге и обнуляет всю сумму. Понятна причина? Если по-прежнему нет, то идем дальше вглубь смысла вашей формулы. Что же означает этот множитель (NOT Y), который вы использовали например вот в этой формуле вашего запроса: Код: sql 1. 2. 3. 4. 5.
Можете пояснить, какой логический смысл имеют значения этого (NOT Y)? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2016, 18:38 |
|
Access. Надо сделать нарастающий итог по месяцам чтобы учитывался за предыдущие года
|
|||
---|---|---|---|
#18+
непоймучкаAinur.sm, ну вот, ваша картинка демонстрирует причину вашего нуля в сумме - как и было сказано чуть выше: непоймучкалибо записи есть, но все суммируемые значения (которые дает выражение внутри SUM) получаются нулевыми (например, из-за того что логический критерий-множитель нулевой )А именно: множитель (NOT Y), который во всех записях у вас равен нулю, в итоге и обнуляет всю сумму. Понятна причина? Если по-прежнему нет, то идем дальше вглубь смысла вашей формулы. Что же означает этот множитель (NOT Y), который вы использовали например вот в этой формуле вашего запроса: Код: sql 1. 2. 3. 4. 5.
Можете пояснить, какой логический смысл имеют значения этого (NOT Y)? >>>Year(PaymentDate)=2014 AS Y<<< здесь расчет за январь месяц 2014 года >>>Year(PaymentDate)<2014<<< Итог до 2014 год ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2016, 18:47 |
|
Access. Надо сделать нарастающий итог по месяцам чтобы учитывался за предыдущие года
|
|||
---|---|---|---|
#18+
Ainur.smнепоймучкаAinur.sm, ну вот, ваша картинка демонстрирует причину вашего нуля в сумме - как и было сказано чуть выше: пропущено... А именно: множитель (NOT Y), который во всех записях у вас равен нулю, в итоге и обнуляет всю сумму. Понятна причина? Если по-прежнему нет, то идем дальше вглубь смысла вашей формулы. Что же означает этот множитель (NOT Y), который вы использовали например вот в этой формуле вашего запроса: Код: sql 1. 2. 3. 4. 5.
Можете пояснить, какой логический смысл имеют значения этого (NOT Y)? >>>Year(PaymentDate)=2014 AS Y<<< здесь расчет за январь месяц 2014 года >>>Year(PaymentDate)<2014<<< Итог до 2014 год (NOT Y) если отчет нужен за 2013 а общий итог до 2013 год нет вообще то он возвращает -SUM(S2 * >>> (-1)<<< And (CL = 'Закрыт' AND T= 'Поступления')) AS F1 ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2016, 18:50 |
|
Access. Надо сделать нарастающий итог по месяцам чтобы учитывался за предыдущие года
|
|||
---|---|---|---|
#18+
Ainur.smнепоймучкаAinur.sm, ну вот, ваша картинка демонстрирует причину вашего нуля в сумме - как и было сказано чуть выше: пропущено... А именно: множитель (NOT Y), который во всех записях у вас равен нулю, в итоге и обнуляет всю сумму. Понятна причина? Если по-прежнему нет, то идем дальше вглубь смысла вашей формулы. Что же означает этот множитель (NOT Y), который вы использовали например вот в этой формуле вашего запроса: Код: sql 1. 2. 3. 4. 5.
Можете пояснить, какой логический смысл имеют значения этого (NOT Y)? >>>Year(PaymentDate)=2014 AS Y<<< здесь расчет за январь месяц 2014 года >>>Year(PaymentDate)<2014<<< Итог до 2014 год Y - это ЛОГИЧЕСКОЕ ПОЛЕ в подзапросе, вычисляемое выражением Year(PaymentDate)=2014 AS Y логический смысл которого: "Это запись 2014 года" т.е. для записей 2014 года Y=-1, а для записей НЕ 2014 года Y=0 соответственно, логический смысл (инверсного) выражения (NOT Y): "Это запись НЕ 2014 года" а учитывая общий критерий отбора в запросе WHERE Year(PaymentDate)<=2014 в данном случае (NOT Y) означает: "Это запись РАНЕЕ 2014 года" таким образом, в приведенном выше запросе Код: vbnet 1. 2. 3. 4.
а поскольку на последнем вашем скрине ясно видно, что у всех записей NOT_Y = 0 это означает, что у вас в исходной таблице НЕТ записей ранее 2014 отсюда и ваши итоговые нули в столбцах сумм на конец 2013 все вполне законно ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2016, 19:31 |
|
Access. Надо сделать нарастающий итог по месяцам чтобы учитывался за предыдущие года
|
|||
---|---|---|---|
#18+
Ainur.sm, я бы написала так Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2016, 19:34 |
|
|
start [/forum/topic.php?fid=45&fpage=113&tid=1613919]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
24ms |
get topic data: |
14ms |
get forum data: |
2ms |
get page messages: |
85ms |
get tp. blocked users: |
2ms |
others: | 314ms |
total: | 471ms |
0 / 0 |