|
График суммы по дням
|
|||
---|---|---|---|
#18+
Здравствуйте, Есть задача. Необходимо построить в отчете график сумм ЗП по дням. (дни = рабочая неделя с пн-сб, либо весь месяц, либо по указанному периоду) Картинка графика во вложении. Судя по всему необходим перекрестный запрос и даже не один. Как я вижу примерный источник данных: ФИО13.02.201714.02.201715.02.201716.02.201717.02.201718.02.2017Петров244.21677.230.00324.840.000.00Сидоров123.50.003468.150.000.000.00Иванов0.00135211.150.000.000.00 Сейчас возникла сложность в построении перекрестного запроса, все дело в том что получается белиберда :( Даты отображаются только по факту расчета. Перекрестный запрос по сумме затраченных запчастей по каждому человеку. Код: sql 1. 2. 3. 4. 5. 6.
Перекрестный запрос по сумме работ. Код: sql 1. 2. 3. 4. 5. 6.
Сумма ЗП рассчитывается: сумма работ - сумма запчастей Я так полагаю нужно создать "правильный" источник данных для отчета, в котором смогу отобразить сводную диаграмму? Если так, то теперь необходим запрос на объединение двух перекрестных таблиц с выражениями по дням? Как это сделать не представляю возможным ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2017, 16:56 |
|
График суммы по дням
|
|||
---|---|---|---|
#18+
Интересно, как вы увязываете два перекрестных запроса? Вероятно надо сделать следующее: 1. Создать обычный запрос с группировкой по дате и сотруднику, возвращающий стоимость запчастей в поле SumDet. 2. В ваш "запрос по сумме работ" добавить запрос из п.1 (как сохраненный или как SQL выражение) связанный по дате и сотруднику, а в TRANSFORM указать Sum(tbl_Tehniks.Sum_Remonta) - SumDet Если услуги могут быть без запчастей, то запрос надо связывать не по INNER JOIN, а по LEFT (или RIGHT) JOIN, а в выражении вместо - SumDet указать - NZ(SumDet,0) 3. Но так получается "Даты отображаются только по факту расчета". Если нужны все даты в периоде, то и запрос2 нужно сделать обычным, а перекрестный строить на запросе Digits (ищите примеры на этом сайте) и запросе2 со связью LEFT (или RIGHT) JOIN. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2017, 17:52 |
|
График суммы по дням
|
|||
---|---|---|---|
#18+
Анатолий ( Киев ), Спасибо за подсказку. Сделал по рекомендации, но вероятно я что-то упустил из виду... 1. Этим запросом (qry_SumDetIng_Having) получаю израсходованные материалы по дням: Код: sql 1. 2. 3. 4.
2. Тут смастерил запрос Код: sql 1. 2. 3. 4. 5. 6.
Запускаю, вылетает ошибка: попытка выполнить запрос, который не включает указанное выражение "Sum([tbl_Tehniks].[Sum_Remonta])-[qry_SumDetIng_Having].[SumDet]" как часть агрегатной функции С соединениями таблиц игрался и вправо так влево, без результата. По увязке двух перекрестных запроса по ID_Sotrudnik, чувствую, что не правильно... ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2017, 18:43 |
|
График суммы по дням
|
|||
---|---|---|---|
#18+
пока получилось так что переделал запрос на основании которого построил перекрестный. Код: sql 1. 2. 3. 4.
Код: sql 1. 2. 3. 4. 5. 6.
Расчет правильный, а вот как быть с пустыми полями? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2017, 20:35 |
|
|
start [/forum/search_topic.php?author=vassil&author_mode=last_posts&do_search=1]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
42ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
34ms |
get tp. blocked users: |
1ms |
others: | 438ms |
total: | 582ms |
0 / 0 |