powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Отчет с нуливыми значениями
6 сообщений из 6, страница 1 из 1
Отчет с нуливыми значениями
    #32396376
vinni
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Существует отчет который выводит определенные записи из запроса,
встала такая проблемка,
я знаю точно список каких кодов надо выводить (1110, 1120, 1132 ...)
Запрос возвращает только значения которые есть в базе данных.
Мне нужно вывисти запись с нулям если такой записи не возвпащает запрос

Например в базе есть даные по 1110, 1132 а 1120 нету

а отчет должен вернуть

1110 1 2 3
1120 0 0 0
1132 4 1 8

и как это можно сделать
...
Рейтинг: 0 / 0
Отчет с нуливыми значениями
    #32396388
incold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Знакомая кодировочка

Перечень кодов должен находится в справочнике.

Для ADP+SQL
Код: plaintext
1.
2.
select spraw.kod, isnull(sum(query1.pole1), 0 ) as pole1
from spraw left outer join query1 on spraw.kod=query1.kod
group by spraw.kod


Для MDB вместо isnull - Nz
...
Рейтинг: 0 / 0
Отчет с нуливыми значениями
    #32396486
vinni
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
select all kmb, edrpou,fcode,Val(Left(Format([ecode]), 3 ))* 10  AS ecode0,tf,
sum(m1) AS s1, sum(m2) AS s2, sum(m3) AS s3, sum(m4) AS s4, sum(m5) AS s5, sum(m6) AS s6,
sum(m7) AS s7, sum(m8) AS s8, sum(m9) AS s9,sum(m10) AS s10, sum(m11) AS s11, sum(m12) AS s12
from Dovidka_UP_zap
where ecode in(select ecode from eclass where fst_level is not null) and Val(Left(Format([ecode]), 3 ))* 10 = 1110 
GROUP BY kmb,edrpou, fcode, Val(Left(Format([ecode]), 3 ))* 10 , tf


Как доделать этот запрос если Val(Left(Format([ecode]),3))*10=1110 не равен 1110 вернуть пустую запись с этими параметрами
...
Рейтинг: 0 / 0
Отчет с нуливыми значениями
    #32396531
incold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как-то ты не так подходишь к решению задачи.
Ты на словах скажи чего нужно.

Можешь даже в терминах, мне знакомо, что такое КЭК и КФК.
...
Рейтинг: 0 / 0
Отчет с нуливыми значениями
    #32396546
vinni
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
select all kmb, edrpou,fcode,Val(Left(Format([ecode]), 3 ))* 10  AS ecode0,tf,
sum(m1) AS s1, sum(m2) AS s2, sum(m3) AS s3, sum(m4) AS s4, sum(m5) AS s5, sum(m6) AS s6,
sum(m7) AS s7, sum(m8) AS s8, sum(m9) AS s9,sum(m10) AS s10, sum(m11) AS s11, sum(m12) AS s12
from Dovidka_UP_zap
where ecode in(select ecode from eclass where fst_level is not null) and Val(Left(Format([ecode]), 3 ))* 10 = 1110 
GROUP BY kmb,edrpou, fcode, Val(Left(Format([ecode]), 3 ))* 10 , tf


с помощью этого кода я сумирую все КЕКВ по определенному КФК и КВК, которые попадают под маску Val(Left(Format([ecode]),3))*10=1110, если такие коды есть то все нормально их посчитало и вставило этот КЕКВ в отчет, но если нету таких КЕКВ которые удавлитворили бы этому условию то этод код ничего не вставил, но передомной встала такая задача, что если даже по кеквам 1110 нету даных, то всеравно нужно вывисти эту строчку с нулевыми значениями.
Вот и надо ее вставить желательно без глобального изменения кода, может как-то можно сделать это добавлением проверки к этому запросу что если селект вернул значение нул то вставить просто все нули куда надо
...
Рейтинг: 0 / 0
Отчет с нуливыми значениями
    #32396600
incold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не очень прояснилось, но уже ближе.
Сначала по твоим "баранам".
Будет примерно так

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
select all kmb, edrpou,fcode,Val(Left(Format([ecode]), 3 ))* 10  AS ecode0,tf,
nz(sum(m1), 0 ) AS s1, ...
from Dovidka_UP_zap
left outer join 
(select ecode as ecode_10 from Dovidka_UP_zap where Val(Left(Format([ecode]), 3 ))* 10 = 1110  group by ecode) s_10 
on Dovidka_UP_zap.ecode=s_10.ecode
where ecode in(select ecode from eclass where fst_level is not null) 
GROUP BY kmb,edrpou, fcode, Val(Left(Format([ecode]), 3 ))* 10 , tf


К сожалению синтаксис Jet-SQL я не помню написал для T_SQL
Поэтому в MDB могут быть ошибки.


Оффтоп.
У меня есть старая программа, в которой я строил отчеты по кодам группировки.
Это две таблицы:
- одна загловок кода группировки (поля код и название)
- вторая состав (поле код из заголовка и код из таблицы)
Правда там все строилось через рекордсеты во временную таблицу, но зато была возможность у пользователей формировать отчеты в любых разрезах, с любой группировкой без переделки интерфейса.

Например
Делаем код группировки: 1110
В него входят: 1110+1120

Делаем код группировки: 1130
В него входят: 1131+1132+1133+1136+1139
И т.д.
В отчете отображаются коды
1100 - суммы по подчиненным кодам
1130 - суммы по подчиненным кодам
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Отчет с нуливыми значениями
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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