|
Как использовать Count "с условиями" с разбивкой по заданным периода(по месяцам) Access
|
|||
---|---|---|---|
#18+
1. «Поступившие заявки». Количество всех записей с разбивкой по заданным периодам (например, по месяцам). Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
2. «Реализация». Количество записей со значением поля «Стадия проекта» равным «Реализация*». Процент – как отношение количества реализованных заявок к общему количеству поступивших заявок (значение стр.2/ значение стр.1 * 100%). 3. «Отказ». Количество записей со значением поля «Стадия проекта» равным «Отказ». Процент – как отношение количества отказных заявок к общему количеству поступивших заявок (значение стр.3/ значение стр.1 * 100%). ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2016, 19:15 |
|
Как использовать Count "с условиями" с разбивкой по заданным периода(по месяцам) Access
|
|||
---|---|---|---|
#18+
Ainur.sm, Копай в сторону перекрестных запросов (crosstab), но по дороге посмотри суммирующие запросы (group by) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2016, 09:02 |
|
Как использовать Count "с условиями" с разбивкой по заданным периода(по месяцам) 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. 29. 30. 31. 32. 33. 34. 35. 36.
При этом фрагмент, выделенный желтым, не является обязательным. Результаты запроса идут в одну строку. Размещение этих результатов в виде таблички легко выполняется в отчете или форме. Эти значения всегда можно будет получить в отчете (или форме) из предыдущих данных запроса. Если же хотите видеть табличку при открытии запроса, но не хотите (или не можете) сделать перекрестный запрос, можно разбить запрос на части (добавив вспомогательные поля для совпадения числа полей), объединив их затем через UNION ALL. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2016, 15:26 |
|
Как использовать Count "с условиями" с разбивкой по заданным периода(по месяцам) Access
|
|||
---|---|---|---|
#18+
При этом фрагмент, выделенный желтым, не является обязательным.Поясню. Как видно, эти данные могут быть получены в отчете или форме путем очевидных вычислений над предыдущими результатами запроса. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2016, 15:29 |
|
Как использовать Count "с условиями" с разбивкой по заданным периода(по месяцам) Access
|
|||
---|---|---|---|
#18+
Ainur.sm, возникли вопросы --это производственная задача или студенческая --вы десяток раз нарисовали отчетную форму, но ни слова о структуре исходной и порядке записей я подобные отчеты делаю в НТМ-формате каждая строка отдельным запросом(обычно генерируется в коде) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2016, 16:12 |
|
Как использовать Count "с условиями" с разбивкой по заданным периода(по месяцам) Access
|
|||
---|---|---|---|
#18+
Ainur.sm, посмотрите запрос во вложении на нем можно делать отчетную форму с вашей картинки ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2016, 16:16 |
|
Как использовать Count "с условиями" с разбивкой по заданным периода(по месяцам) Access
|
|||
---|---|---|---|
#18+
непоймучка, Спасибо. А как добавить год ? чтоб он и по годам выводил:? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2016, 15:34 |
|
Как использовать Count "с условиями" с разбивкой по заданным периода(по месяцам) Access
|
|||
---|---|---|---|
#18+
Ainur.smнепоймучка, Спасибо. А как добавить год ? чтоб он и по годам выводил:?смотря куда добавить 1) чтобы каждый столбец месяца имел в названии еще и год 2) чтобы число столбцов месяцев оставалось неизменным + отдельный столбец ГОД, и для каждого года - по три строки с разными OPERATION для каждого варианта есть свои нюансы ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2016, 16:44 |
|
Как использовать Count "с условиями" с разбивкой по заданным периода(по месяцам) Access
|
|||
---|---|---|---|
#18+
непоймучка, Сделала как у вас. Создала SRC и в запрос вставила коды. вышла ошибка ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2016, 17:34 |
|
Как использовать Count "с условиями" с разбивкой по заданным периода(по месяцам) Access
|
|||
---|---|---|---|
#18+
Ainur.sm, ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2016, 17:35 |
|
Как использовать Count "с условиями" с разбивкой по заданным периода(по месяцам) Access
|
|||
---|---|---|---|
#18+
непоймучка,Чтоб сгруппировать по годам. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2016, 17:52 |
|
Как использовать Count "с условиями" с разбивкой по заданным периода(по месяцам) Access
|
|||
---|---|---|---|
#18+
Ainur.smнепоймучка, Сделала как у вас. Создала SRC и в запрос вставила коды. вышла ошибкау меня нет под рукой MSAccess, покажите SQL обоих запросов (только не картинкой а прямо SQL-текст вставьте сюда) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2016, 17:54 |
|
Как использовать Count "с условиями" с разбивкой по заданным периода(по месяцам) Access
|
|||
---|---|---|---|
#18+
Ainur.smнепоймучка, Сделала как у вас. Создала SRC и в запрос вставила коды. вышла ошибкатак. уже вижу, по крайней мере это насчет того, что ваш qdfActions спрашивает DateClosed - у вас там в первом union select'е откуда-то взялось DateClosed - не должно его там быть, видимо вы по ошибке его туда вписали (вместо M) в Итоговом запросе исходного поля даты нет, он уже работает только с месяцами - которые делаются из этой даты в промежуточном запросе SRC -он для того и сделан, чтобы в каждом union сто раз Format(...) не повторять. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2016, 18:05 |
|
Как использовать Count "с условиями" с разбивкой по заданным периода(по месяцам) Access
|
|||
---|---|---|---|
#18+
Ainur.smнепоймучка,Чтоб сгруппировать по годам. вот смотрите, непоймучка1) чтобы каждый столбец месяца имел в названии еще и год 2) чтобы число столбцов месяцев оставалось неизменным + отдельный столбец ГОД, и для каждого года - по три строки с разными OPERATION В варианте(1) придется избавиться от явного перечисления имен столбцов в разделе PIVOT, где сейчас просто явно заданы имена месяцев в нужном порядке, т.к. число и имена месяцев постоянны - потому их и можно там перечислить. А вот если в именах столбцов будет присутствовать год, то заранее "предугадать" какие года есть в базе и перечислить их в PIVOT в общем случае нельзя (не прибегая к предварительному программному анализу) В свою очередь, после отказа от явного перечисления имен столбцов в PIVOT, мы получим: a) столбцы будут сформированы в зависимости от фактического наличия данных (т.е. например, если данных за январь нет - не будет январского столбца вообще) b) столбцы будут следовать в алфавитном порядке (т.е. не январь-декабрь, как сейчас, а Август-Январь) и поэтому, чтобы получить привычный порядок столбцов-месяцев, их придется именовать не по именам, а по порядковым номерам однако, самая большая засада в том, что в варианте(1) "заложено" ограничение, которое не даст вам обрабатывать записи более, чем за определенное количество лет. в MSAccess есть ограничение на число столбцов в таблице/запросе (255), а у вас каждый новый год добавляет в результат 24 столбца - поэтому, если не сделать в запросе доп.условие для отбора по годам, то лет так через десять ведения такой базы, ваш запрос просто перестанет работать. поэтому вариант(2) предпочтительнее, имхо ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2016, 18:15 |
|
Как использовать Count "с условиями" с разбивкой по заданным периода(по месяцам) Access
|
|||
---|---|---|---|
#18+
ну и собственно, чтобы реализовать этот вариант(2), можно сделать так: 1) в запрос SRC в раздел SELECT добавить выражение вида Код: vbnet 1.
2) а в Итоговом запросе дописать в КАЖДОМ UNION-подзапросе в разделах SELECT и GROUP BY этот самый Y - везде первым полем по-порядку (в тех union-подзапросах, где GROUP BY вообще не было - дописать 'GROUP BY Y') и в итоге получите примерно такое ГОДOPERATIONянвянв%февфев%...ИТОГОИТОГО%2015Поступившие заявки2010040100...100001002015Реализация10502050...5000502015Отказ10502050...5000502014Поступившие заявки21004100...10001002014Реализация150250...500502014Отказ150250...50050 ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2016, 18:22 |
|
Как использовать Count "с условиями" с разбивкой по заданным периода(по месяцам) Access
|
|||
---|---|---|---|
#18+
вдогонку - ну и само-собой, УБРАТЬ из запроса SRC условие для отбора по году WHERE Year(DateClosed) = 2015 ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2016, 18:26 |
|
Как использовать Count "с условиями" с разбивкой по заданным периода(по месяцам) Access
|
|||
---|---|---|---|
#18+
если же вы, говоря "Чтоб сгруппировать по годам" имеете ввиду такой итоговый результат: OPERATION20142014%20152015%ИТОГОИТОГО%Поступившие заявки201004010060100Реализация105020503050Отказ105020503050 тогда 1) замените в запросе SRC Код: vbnet 1.
на Код: vbnet 1.
2) в Итоговом запросе замените Код: vbnet 1. 2. 3. 4. 5.
на Код: vbnet 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2016, 18:34 |
|
Как использовать Count "с условиями" с разбивкой по заданным периода(по месяцам) Access
|
|||
---|---|---|---|
#18+
непоймучка, все получилось по годам. кроме "Реализация" и "Отказа" мне надо добавить Причины. перечислены в скриншоте. И тоже самое посчитать кол-во. и в %. кол-во причины "Неустроило время ответ" разделить на кол-во "поступившие заявки" * 100% ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2016, 18:38 |
|
Как использовать Count "с условиями" с разбивкой по заданным периода(по месяцам) Access
|
|||
---|---|---|---|
#18+
Ainur.sm, Причины перечислены в столбце RefuseReasons. Это отдельный столбец. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2016, 18:46 |
|
Как использовать Count "с условиями" с разбивкой по заданным периода(по месяцам) Access
|
|||
---|---|---|---|
#18+
Ainur.smнепоймучка, все получилось по годам. кроме "Реализация" и "Отказа" мне надо добавить Причины. перечислены в скриншоте. И тоже самое посчитать кол-во. и в %. кол-во причины "Отказ" разделить на кол-во "поступившие заявки" * 100% ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2016, 18:57 |
|
Как использовать Count "с условиями" с разбивкой по заданным периода(по месяцам) Access
|
|||
---|---|---|---|
#18+
Ainur.smAinur.smнепоймучка, все получилось по годам. кроме "Реализация" и "Отказа" мне надо добавить Причины. перечислены в скриншоте. И тоже самое посчитать кол-во. и в %. кол-во причины "Неустроило время ответа" разделить на кол-во "поступившие заявки" * 100% ОШИБКА кроме "Реализация" и "Отказа" мне надо добавить Причины. перечислены в скриншоте. И тоже самое посчитать кол-во. и в %. кол-во причины "Неустроило время ответа" разделить на кол-во "ОТКАЗ" * 100%[/quot][/quot] ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2016, 18:58 |
|
Как использовать Count "с условиями" с разбивкой по заданным периода(по месяцам) Access
|
|||
---|---|---|---|
#18+
Ainur.smнепоймучка, все получилось по годам. кроме "Реализация" и "Отказа" мне надо добавить Причины. перечислены в скриншоте. И тоже самое посчитать кол-во. и в %. так если есть такая таблица-справочник Причин, то по идее, и данные у вас в базе должны быть нормализованы, т.е. в основной таблице (там где поле DateClosed) поле причины (по сути DealStage) должно быть представлено НЕ текстом ('Реализация' и 'Отказ'), а ЧИСЛОМ - значением ключевого поля этого самого справочника ''Причин' (а если ничего такого нет - это стоило бы сделать) наличие такой таблицы-справочника - это более правильно, нежели всякие извращения типа IIF(DealStage='Реализация',2,3) AS ord которые пришлось писать в запросе SRC вместо этого в запросе SRC следует сделать INNER JOIN основной таблицы и этого справочника причин и использовать, например его Код AS ord (чтобы в итоговом запросе строки OPERATION следовали в том же порядке как в этом справочнике - именно для этого в запросе SRC и 'высасывается из пальца' это поле ord) кроме того, если требуется в итоговый запрос вывести НЕ все причины, а только какие-то избранные, то в условии WHERE DealStage IN ('Реализация','Отказ') в запросе SRC лучше использовать коды этих избранных причин WHERE DealStage_ID IN (2,3,4,7,8...) В смысле удобства оператора такой список кодов Причин можно получить в где-то форме, например из списка с мультивыбором, основанном на этом справочнике причин ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2016, 19:07 |
|
Как использовать Count "с условиями" с разбивкой по заданным периода(по месяцам) Access
|
|||
---|---|---|---|
#18+
Бонус. "Не устроило" пишется раздельно. Ведь эти пункты клиенту демонстрируются?))) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2016, 19:08 |
|
Как использовать Count "с условиями" с разбивкой по заданным периода(по месяцам) Access
|
|||
---|---|---|---|
#18+
непоймучка, и как сделать? может кроме SRC создать новый запрос? Отдельно для причин ? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2016, 19:15 |
|
Как использовать Count "с условиями" с разбивкой по заданным периода(по месяцам) Access
|
|||
---|---|---|---|
#18+
Ainur.smнепоймучка, и как сделать? может кроме SRC создать новый запрос? Отдельно для причин ?так, стоп. я, видать, недопонял то есть, Реализация и Отказ - это отдельная песня (в поле DealStage) - и с ней мы разобрались, но КРОМЕ того, у вас есть ЕЩЕ одно поле (RefuseReasons), где пишутся причины отказа, так? 1) какого типа это поле? 2) показанная вами картинка со списком причин - еэто вы просто так, или у вас есть ОТДЕЛЬНАЯ таблица со списокм причин (типа справочник причин) 3) вы пишете "кроме Реализация и Отказа мне надо добавить" - добавить в ЭТОТ же запрос? в какое место, в каком порядке? можете как-то образец желаемого итогового результата показать для примера? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2016, 19:26 |
|
|
start [/forum/topic.php?fid=45&msg=39164359&tid=1613813]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
41ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
others: | 341ms |
total: | 483ms |
0 / 0 |