powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как вывести пустые поля если есть условие?
34 сообщений из 34, показаны все 2 страниц
Как вывести пустые поля если есть условие?
    #39237839
DQuasar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
имеется три таблицы, по которым мне нужно сделать запрос. Если без условия по дате, то выводит соответственно все поля. А если с условием то выводит не все поля.
Мне необходимо чтобы из таблицы GRUPPA выводились все поля, сумма Col_uved на конкретную дату, а те поля где нет Col_uved выводились пустыми.
...
Рейтинг: 0 / 0
Как вывести пустые поля если есть условие?
    #39237840
DQuasar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
Как вывести пустые поля если есть условие?
    #39237841
DQuasar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
Как вывести пустые поля если есть условие?
    #39237858
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DQuasar,

а mdb файл с тремя таблицами слабо было прикрепить? Вот сейчас кто-то намалюет тебе эскиз (возможно и правильный), но ошибется в одной букве, а потом ты будешь говорить - проверил, не работает...
...
Рейтинг: 0 / 0
Как вывести пустые поля если есть условие?
    #39237880
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DQuasarЕсли без условия по дате, то выводит соответственно все поля. А если с условием то выводит не все поля.
Бредятина. Список полей выходного набора в принципе не может зависеть от наличия или отсутствия условия.
DQuasarМне необходимо чтобы из таблицы GRUPPA выводились все поля, сумма Col_uved на конкретную дату, а те поля где нет Col_uved выводились пустыми.
Код: vbnet
1.
WHERE field = #value# OR field IS NULL
...
Рейтинг: 0 / 0
Как вывести пустые поля если есть условие?
    #39238729
DQuasar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот такой результат получить возможно ли????
...
Рейтинг: 0 / 0
Как вывести пустые поля если есть условие?
    #39238731
DQuasar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот файл ДБ
...
Рейтинг: 0 / 0
Как вывести пустые поля если есть условие?
    #39238735
Фотография simply
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Как вывести пустые поля если есть условие?
    #39238736
Фотография simply
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Как вывести пустые поля если есть условие?
    #39239199
DQuasar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
simply,

Здесь задваиваются name_gr и нет временных сооружений. Должно быть так - если на эту дату есть какие либо значения, то выводить сумму, если же нет, то хотя бы выводить ноль.
т.е. запрос должен содержать всего 5 строк, ровно столько строк, сколько в таблице GRUPPA, а в столбцах в зависимости от даты сумма либо пустое (или ноль)
...
Рейтинг: 0 / 0
Как вывести пустые поля если есть условие?
    #39239395
П-Л
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Решение очевидно. Справочник ВСЕХ работ + дата + ЛЕФТ джоин группировка записей какие фактически есть.
...
Рейтинг: 0 / 0
Как вывести пустые поля если есть условие?
    #39239433
Фотография simply
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Как вывести пустые поля если есть условие?
    #39239545
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
SELECT Sum(UVED.col_uved) AS [Sum-col_uved], UVED.data_uved, GRUPPA.name_gr
FROM (GRUPPA LEFT JOIN TEMA ON GRUPPA.cod_gr = TEMA.cod_gr) LEFT JOIN UVED ON TEMA.cod_tem = UVED.cod_tem
WHERE UVED.data_uved=#4/30/2016#
GROUP BY GRUPPA.name_gr, UVED.data_uved
UNION ALL
SELECT Null, #4/30/2016#, GRUPPA.name_gr
FROM (GRUPPA LEFT JOIN TEMA ON GRUPPA.cod_gr = TEMA.cod_gr) LEFT JOIN UVED ON TEMA.cod_tem = UVED.cod_tem
WHERE GRUPPA.cod_gr NOT IN 
(SELECT GRUPPA.cod_gr FROM (GRUPPA LEFT JOIN TEMA ON GRUPPA.cod_gr = TEMA.cod_gr) LEFT JOIN UVED ON TEMA.cod_tem = UVED.cod_tem WHERE UVED.data_uved=#4/30/2016#);

Sum-col_uveddata_uvedname_gr4 30.04.2016 Благоустройство2 30.04.2016 Земляные работы2 30.04.2016 Реклама3 30.04.2016 Торговля 30.04.2016 Временные сооружения
...
Рейтинг: 0 / 0
Как вывести пустые поля если есть условие?
    #39239552
__Michelle,

Благоустройство
Земляные работы
Реклама
Торговля
Временные сооружения


Реально ведь - сетевой график коммерческого кладбища у ТС склеивается ...

Извините. У меня сегодня мрачнуха прет. Но так ведь?!
.
...
Рейтинг: 0 / 0
Как вывести пустые поля если есть условие?
    #39239558
Фотография simply
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Там еще другие числа: 28 и 29
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
SELECT Sum(UVED.col_uved) AS [Sum-col_uved], UVED.data_uved, GRUPPA.name_gr
FROM (GRUPPA LEFT JOIN TEMA ON GRUPPA.cod_gr = TEMA.cod_gr) LEFT JOIN UVED ON TEMA.cod_tem = UVED.cod_tem
WHERE UVED.data_uved=#4/29/2016#
GROUP BY GRUPPA.name_gr, UVED.data_uved
UNION ALL
SELECT Null, #4/29/2016#, GRUPPA.name_gr
FROM (GRUPPA LEFT JOIN TEMA ON GRUPPA.cod_gr = TEMA.cod_gr) LEFT JOIN UVED ON TEMA.cod_tem = UVED.cod_tem
WHERE GRUPPA.cod_gr NOT IN 
(SELECT GRUPPA.cod_gr FROM (GRUPPA LEFT JOIN TEMA ON GRUPPA.cod_gr = TEMA.cod_gr) LEFT JOIN UVED ON TEMA.cod_tem = [SRC HTML]UVED.cod_tem WHERE UVED.data_uved=#4/29/2016#);



Если 29 то результат такой:
Код: xml
1.
2.
3.
4.
5.
6.
7.
Sum-col_uved	data_uved	name_gr
5	29-апр-16	Реклама
	29-апр-16	Торговля
	29-апр-16	Земляные работы
	29-апр-16	Земляные работы
	29-апр-16	Благоустройство
	29-апр-16	Временные сооружения
...
Рейтинг: 0 / 0
Как вывести пустые поля если есть условие?
    #39239561
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
капча-трава-я-не-робот,

А ведь точно.
Там среди тем есть "Разрытие без ордера", "Урна"...
А-а-а-а....
...
Рейтинг: 0 / 0
Как вывести пустые поля если есть условие?
    #39239563
Фотография simply
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: vbnet
1.
2.
3.
4.
SELECT GRUPPA.name_gr, Sum(IIf([data_uved]=#4/29/2016#,[col_uved],0)) AS col_uved_, First(IIf([data_uved]=#4/29/2016#,[data_uved],#4/29/2016#)) AS data_uved_
FROM (GRUPPA LEFT JOIN TEMA ON GRUPPA.cod_gr = TEMA.cod_gr) LEFT JOIN UVED ON TEMA.cod_tem = UVED.cod_tem
GROUP BY GRUPPA.name_gr
HAVING (((First(IIf([data_uved]=#4/29/2016#,[data_uved],#4/29/2016#)))=#4/29/2016#));
...
Рейтинг: 0 / 0
Как вывести пустые поля если есть условие?
    #39239572
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
simplyТам еще другие числа: 28 и 29
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
SELECT Sum(UVED.col_uved) AS [Sum-col_uved], UVED.data_uved, GRUPPA.name_gr
FROM (GRUPPA LEFT JOIN TEMA ON GRUPPA.cod_gr = TEMA.cod_gr) LEFT JOIN UVED ON TEMA.cod_tem = UVED.cod_tem
WHERE UVED.data_uved=#4/29/2016#
GROUP BY GRUPPA.name_gr, UVED.data_uved
UNION ALL
SELECT Null, #4/29/2016#, GRUPPA.name_gr
FROM (GRUPPA LEFT JOIN TEMA ON GRUPPA.cod_gr = TEMA.cod_gr) LEFT JOIN UVED ON TEMA.cod_tem = UVED.cod_tem
WHERE GRUPPA.cod_gr NOT IN 
(SELECT GRUPPA.cod_gr FROM (GRUPPA LEFT JOIN TEMA ON GRUPPA.cod_gr = TEMA.cod_gr) LEFT JOIN UVED ON TEMA.cod_tem = [SRC HTML]UVED.cod_tem WHERE UVED.data_uved=#4/29/2016#);



Если 29 то результат такой:
Код: xml
1.
2.
3.
4.
5.
6.
7.
Sum-col_uved	data_uved	name_gr
5	29-апр-16	Реклама
	29-апр-16	Торговля
	29-апр-16	Земляные работы
	29-апр-16	Земляные работы
	29-апр-16	Благоустройство
	29-апр-16	Временные сооружения

Да, правильно. Нужен еще один DISTINCT
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
SELECT Sum(UVED.col_uved) AS [Sum-col_uved], UVED.data_uved, GRUPPA.name_gr
FROM (GRUPPA LEFT JOIN TEMA ON GRUPPA.cod_gr = TEMA.cod_gr) LEFT JOIN UVED ON TEMA.cod_tem = UVED.cod_tem
WHERE UVED.data_uved=#4/29/2016#
GROUP BY GRUPPA.name_gr, UVED.data_uved
UNION ALL 
SELECT DISTINCT Null, #4/29/2016#, GRUPPA.name_gr
FROM (GRUPPA LEFT JOIN TEMA ON GRUPPA.cod_gr = TEMA.cod_gr) LEFT JOIN UVED ON TEMA.cod_tem = UVED.cod_tem
WHERE GRUPPA.cod_gr NOT IN 
(SELECT DISTINCT GRUPPA.cod_gr FROM (GRUPPA LEFT JOIN TEMA ON GRUPPA.cod_gr = TEMA.cod_gr) LEFT JOIN UVED ON TEMA.cod_tem = UVED.cod_tem WHERE UVED.data_uved=#4/29/2016#);

Sum-col_uved data_uved name_gr5 29.04.2016 Реклама 29.04.2016 Благоустройство 29.04.2016 Временные сооружения 29.04.2016 Земляные работы 29.04.2016 Торговля Примечание : это здесь, на форуме, Sum-col_uved почему-то выравнивается как текст,
на самом деле выравнивается как число.
...
Рейтинг: 0 / 0
Как вывести пустые поля если есть условие?
    #39239585
Фотография mds_world
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Топик почищен
...
Рейтинг: 0 / 0
Как вывести пустые поля если есть условие?
    #39242403
DQuasar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
simply, спасибо. Ваш ответ мне очень помог.

Стараюсь добавить еще несколько таблиц. Но получается только когда добавляешь вместе с количеством еще и дату. Запрос при этом получается очень объемным, много лишних столбцов с датами получается. Можно ли как то упростить запрос? или БД корявая?
...
Рейтинг: 0 / 0
Как вывести пустые поля если есть условие?
    #39242405
DQuasar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
Как вывести пустые поля если есть условие?
    #39242640
Фотография simply
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DQuasarsimply, спасибо. Ваш ответ мне очень помог.

Стараюсь добавить еще несколько таблиц. Но получается только когда добавляешь вместе с количеством еще и дату. Запрос при этом получается очень объемным, много лишних столбцов с датами получается. Можно ли как то упростить запрос? или БД корявая?
На счет "корявости" базы, не знаю, особенно не вникал. Вы просили помощи по конкретным задачам, я их решал, повторюсь, не вникая в общую суть. Скорее всего в структуре не все в порядке, коль с самого начала приходится изгаляться с запросами.
Попробуйте, своими словами, описать задачу, которую вам необходимо решить с помощью базы.
Да, из последнего вашего сообщение, я вообще ничего не понял, что вы хотите.
...
Рейтинг: 0 / 0
Как вывести пустые поля если есть условие?
    #39242647
Фотография simply
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если вам нужно видеть только два столбца, то можно остальные просто скрыть (если я все таки правильно понял)
...
Рейтинг: 0 / 0
Как вывести пустые поля если есть условие?
    #39242699
DQuasar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
simply,

суть в следующем. Несколько специалистов, каждый из них каждый день может выдать предписания, уведомления, составить протоколы, а может и не составить. Все это может быть на разные темы. Тем может быть очень много, а темы в свою очередь делятся на 5 групп (может быть +-2).

От БД нужен количественный учет по каждому специалисту, теме, группе и т.д.
От запроса нужно чтобы он по каждой группе считал количество уведомлений, протоколов, предписаний и т.д. за определенный период/дату.

Прикрепляю пример итоговой таблицы (отчета) в Excel. Спасибо заранее...
...
Рейтинг: 0 / 0
Как вывести пустые поля если есть условие?
    #39242794
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
SELECT name_gr AS Группа, #04/29/2016# AS Дата, Протоколы, Уведомления, Предписания
FROM GRUPPA INNER JOIN 
(SELECT cod_gr, Sum(C*(V=1)*(D=#04/29/2016#)) AS Уведомления, Sum(C*(V=2)*(D=#04/29/2016#)) AS Предписания, Sum(C*(V=3)*(D=#04/29/2016#)) AS Протоколы
FROM (SELECT V, cod_gr, C, D 
FROM TEMA LEFT JOIN
(SELECT 1 AS V, UVED.cod_tem AS T, UVED.col_uved AS C, UVED.data_uved AS D FROM UVED
UNION ALL
SELECT 2, PRED.cod_tem, PRED.col_pred, PRED.data_pred FROM PRED
UNION ALL 
SELECT 3, PROT.cod_tem, PROT.col_prot, PROT.data_prot FROM PROT) AS Q
ON TEMA.cod_tem=Q.T) AS QQ
GROUP BY cod_gr) AS QQQ ON GRUPPA.cod_gr=QQQ.cod_gr
ORDER BY name_gr;

Группа Дата Протоколы Уведомления ПредписанияБлагоустройство 29.04.2016 0 0 0Временные сооружения 29.04.2016 0 0 0Земляные работы 29.04.2016 0 0 0Реклама 29.04.2016 2 5 1Торговля 29.04.2016 1 0 0
...
Рейтинг: 0 / 0
Как вывести пустые поля если есть условие?
    #39243462
DQuasar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
__Michelle, ЖЕСТЬ...

Скажите пожалуйста каков алгоритм запроса? Сначала создается таблица со всеми данными потом выбираются нужные???
Где можно посмотреть информацию про подобное? Хочу сам во всем разобраться...

спасибо...
...
Рейтинг: 0 / 0
Как вывести пустые поля если есть условие?
    #39243602
DQuasar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Все, со структурой и логикой запроса разобрался. В запросе есть [текст запроса]. Квадратные скобки, заканчивающиеся ТОЧКОЙ. Что это значит?

Добавил в запрос 4-ю таблицу. Почему не отображается еще один столбец???

SELECT name_gr AS Группа, Протоколы, Уведомления, Предписания

FROM GRUPPA INNER JOIN

[SELECT cod_gr, Sum(C*(V=1)*(D=#04/29/2016#)) AS Уведомления, Sum(C*(V=2)*(D=#04/29/2016#)) AS Предписания, Sum(C*(V=3)*(D=#04/29/2016#)) AS Протоколы, Sum(C*(V=4)*(D=#04/29/2016#)) AS Акты
FROM

(SELECT V, cod_gr, C, D
FROM TEMA LEFT JOIN

(SELECT 1 AS V, UVED.cod_tem AS T, UVED.col_uved AS C, UVED.data_uved AS D FROM UVED
UNION ALL

SELECT 2, PRED.cod_tem, PRED.col_pred, PRED.data_pred FROM PRED
UNION ALL

SELECT 3, PROT.cod_tem, PROT.col_prot, PROT.data_prot FROM PROT
UNION ALL

SELECT 4, AKT.cod_tem, AKT.col_akt, AKT.data_akt FROM AKT) AS Q
ON TEMA.cod_tem=Q.T) AS QQ

GROUP BY cod_gr]. AS QQQ ON GRUPPA.cod_gr=QQQ.cod_gr
ORDER BY name_gr;
...
Рейтинг: 0 / 0
Как вывести пустые поля если есть условие?
    #39243793
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DQuasarВсе, со структурой и логикой запроса разобрался.
В запросе есть [текст запроса]. Квадратные скобки, заканчивающиеся ТОЧКОЙ. Что это значит?Хорошо, что вы сами разобрались.)))
Квадратные скобки с точкой добавляет конструктор запросов при сохранении или при переходе из режима SQL в режим конструктора.
Я предпочитаю работать в режиме SQL и все эти скобки каждый раз меняю на обычные,
иначе при внесении изменений в режиме SQL запрос воспринимается как ошибочный.

DQuasarДобавил в запрос 4-ю таблицу. Почему не отображается еще один столбец???
Код: 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.
SELECT name_gr AS Группа, Протоколы, Уведомления, Предписания

FROM GRUPPA INNER JOIN 

[SELECT cod_gr, Sum(C*(V=1)*(D=#04/29/2016#)) AS Уведомления, Sum(C*(V=2)*(D=#04/29/2016#)) AS Предписания, Sum(C*(V=3)*(D=#04/29/2016#)) AS Протоколы, Sum(C*(V=4)*(D=#04/29/2016#)) AS Акты
FROM 

(SELECT V, cod_gr, C, D 
FROM TEMA LEFT JOIN

(SELECT 1 AS V, UVED.cod_tem AS T, UVED.col_uved AS C, UVED.data_uved AS D FROM UVED
UNION ALL

SELECT 2, PRED.cod_tem, PRED.col_pred, PRED.data_pred FROM PRED
UNION ALL 

SELECT 3, PROT.cod_tem, PROT.col_prot, PROT.data_prot FROM PROT
UNION ALL

SELECT 4, AKT.cod_tem, AKT.col_akt, AKT.data_akt  FROM AKT) AS Q
ON TEMA.cod_tem=Q.T) AS QQ

GROUP BY cod_gr]. AS QQQ ON GRUPPA.cod_gr=QQQ.cod_gr
ORDER BY name_gr;

Не отображается потому, что Вы его не включили в список вывода – желтая строка.
Вот так
Код: sql
1.
SELECT name_gr AS Группа, Протоколы, Уведомления, Предписания, Акты
...
Рейтинг: 0 / 0
Как вывести пустые поля если есть условие?
    #39244174
DQuasar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
[/src][/quot]Не отображается потому, что Вы его не включили в список вывода – желтая строка.
Вот так[src]

Блин, точно, спасибо)))
...
Рейтинг: 0 / 0
Как вывести пустые поля если есть условие?
    #39263354
DQuasar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Возвращаюсь к моей БД(((

Как добавить в этот запрос еще несколько значений???
1. из таблицы RABOTA сумму V_rab
2. из таблицы DEMONT сумму Col_dem.

я пытаюсь после текста

SELECT 4, AKT.cod_tem, AKT.col_akt, AKT.data_akt FROM AKT) AS Q
ON TEMA.cod_tem=Q.T) AS QQ

подставить типа

UNION ALL
SELECT 5, RABOTA.Cod_gr, RABOTA.Col_rab, RABOTA.data_rab

но не получается.
Обновленную БД прилагаю
...
Рейтинг: 0 / 0
Как вывести пустые поля если есть условие?
    #39263355
DQuasar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DQuasar,
...
Рейтинг: 0 / 0
Как вывести пустые поля если есть условие?
    #39264612
DQuasar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как это сделать?
...
Рейтинг: 0 / 0
Как вывести пустые поля если есть условие?
    #39267804
Фотография simply
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В примере не рабочий запрос
...
Рейтинг: 0 / 0
Как вывести пустые поля если есть условие?
    #39270924
DQuasar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
simply,

Нужно скачать БД, создать новый SQL-запрос и скопировать запрос с форума туда. Иначе ругается на то что запрос очень большой
...
Рейтинг: 0 / 0
34 сообщений из 34, показаны все 2 страниц
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как вывести пустые поля если есть условие?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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