Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
1 / 1 / 0
Регистрация: 09.12.2017
Сообщений: 18

Как сделать проверку в таблице на наличие данных?

07.06.2019, 20:34. Показов 1834. Ответов 14

Студворк — интернет-сервис помощи студентам
Здоровья уважаемые!
Собственно столкнулся с маааленькой и слегка неудобной проблемкой.
Итак дано 2 таблицы которые суммируются, вычитаются, умножаются ну и тд

Запрос(допустим):
SQL
1
2
SELECT [Table1]![Summ]-[Table2]![Summ2] AS Itog
FROM Table1, Table2;
Проблема:
Периодически одна из таблиц полностью очищается.

Тоесть
1.(Table1=100 + Table2=100)=200
После очистки
2.(Table1=пусто + Table2=100)=пусто
Приходится в Table1 заколачивать строку с нулями чтоб все заработало.

Вопрос
Как сделать проверку что таблица не пустая, и в случае если там пусто в варианте 2
Table1 сделать =0

Всем заранее спасибо!
ЗЫ
Delphi 10 + базы аксеса
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
07.06.2019, 20:34
Ответы с готовыми решениями:

Как сделать проверку на наличие данных в результатах запроса "q" и только если они есть выполнить код
Выполнен запрос "q" Есть рабочий код , но он работает только при условии если в запросе "q" есть строки. Если данные...

Как сделать проверку наличие листа?
Нужна помощь в написании формулы, смысл такой: листы в книге пронумерованы 1,2,3,4...31 (дни месяца), они добавляются, в эту книгу...

Как сделать проверку на наличие пользователя по паролю?
И так, доброго времени суток. У нас есть список пользователей, в задании сказано, удалить одного из пользователей по заданному паролю с...

14
1076 / 989 / 340
Регистрация: 07.08.2012
Сообщений: 2,790
07.06.2019, 21:17
В любой СУБД SQL есть функции, которые проверяют значения на "пустоту" (как правило, такая "пустота" зовется NULL).
В Аксессе можно использовать функцию IIF. О ней подробно рассказано в справке Аксесса.
1
1 / 1 / 0
Регистрация: 09.12.2017
Сообщений: 18
07.06.2019, 21:20  [ТС]
дык эта...
>>Всем заранее спасибо!
>>ЗЫ
>>!!!!!>>>Delphi 10 + базы аксеса
0
1076 / 989 / 340
Регистрация: 07.08.2012
Сообщений: 2,790
07.06.2019, 21:26
SQL
1
.. - iif(IsNull(Table2.Summ2), 0, Table2.Summ2) AS Summa ..
1
1 / 1 / 0
Регистрация: 09.12.2017
Сообщений: 18
07.06.2019, 21:32  [ТС]
Спасибо! но тема не раскрыта. хотелось бы увидеть простенький пример.
ибо паскакаль в месте с злобными бэдэ забросил году эндак в 99... а щас штото прям вштырило (для простотак) . руки много помнят а голова уже отказывает..... время матьего...!

Добавлено через 2 минуты
пока по клаве клацал человек ответил раньше. спасиб
0
Модератор
 Аватар для D1973
9917 / 6454 / 2455
Регистрация: 21.01.2014
Сообщений: 27,389
Записей в блоге: 3
08.06.2019, 12:07
Цитата Сообщение от svmt Посмотреть сообщение
Приходится в Table1 заколачивать строку с нулями чтоб все заработало
Так а что в самом Access-е не поставить для поля значение по умолчанию?
0
1 / 1 / 0
Регистрация: 09.12.2017
Сообщений: 18
08.06.2019, 17:16  [ТС]
После Delete таблица нули проставит сама?
Чтото сомневаюсь
Скорее всего это сработает после insert post
Сейчас попробую
0
1076 / 989 / 340
Регистрация: 07.08.2012
Сообщений: 2,790
08.06.2019, 17:29
О значениях по умолчанию можно говорить тогда, когда в таблице есть записи.
Если же таблица после очистки пустая, то никаких значений в ней нет (ни вставленных с клиентской программы,
ни тех, которые вставляет сервер СУБД по умолчанию).
И тогда, понятно, запрос из пустой таблицы вернет NULL, поэтому значения по умолчанию в этой ситуации не помощники.

Другой вопрос: зачем очищать таблицу? Но это уже иная тема.
0
 Аватар для Пытливый
3763 / 2267 / 705
Регистрация: 29.05.2013
Сообщений: 9,622
08.06.2019, 17:53
После изменения таблицы, для новых записей значения по умолчанию будут применяться, а для старых записей вы должны сами проставить 0, там где они должны быть.
0
1 / 1 / 0
Регистрация: 09.12.2017
Сообщений: 18
08.06.2019, 18:14  [ТС]
И всетаки не соображу куда это впихнуть
SQL
1
.. - iif(IsNull(Table2.Summ2), 0, Table2.Summ2) AS Summa ..
Если нужно проверить каждую из таблиц
SQL
1
2
SELECT [Table1]![Summ]-[Table2]![Summ2] AS Summa
FROM Table1, Table2;
Ребят уж помогите пожалст.
Ибо конец проги так близок....

Таблицу очищаю потомучто есть склад (просто себе жизнь упрощаю)
На который ежедневно помаленьку чтото приходит.
Потом гдето раз в неделю все уезжает в страну мальборо.
Все. Он пустой. Ну и естетвенно просто на таблицу Delete и по новому...
0
Модератор
 Аватар для D1973
9917 / 6454 / 2455
Регистрация: 21.01.2014
Сообщений: 27,389
Записей в блоге: 3
08.06.2019, 18:36
Цитата Сообщение от svmt Посмотреть сообщение
просто на таблицу Delete и по новому
А чтобы узнать, что уехало в ту страну пол-года назад - для этого отдельную таблицу держим, да? И дублируем туда эти записи, вместо того, чтобы не делать удаление, а ставить признак отсутствия... Или это вообще не фиксируется у Вас никак?
0
1076 / 989 / 340
Регистрация: 07.08.2012
Сообщений: 2,790
08.06.2019, 18:50
Цитата Сообщение от svmt Посмотреть сообщение
И всетаки не соображу куда это впихнуть
Вместо Table2!Summ2

Не по теме:

Но приведенный запрос работать нормально не будет из-за того что нет выражения связи между таблицами.
А так как показано, в наборе данных вернется количество записей равное количеству записей в таблице1 умноженному на количество записей в таблице2.

1
1 / 1 / 0
Регистрация: 09.12.2017
Сообщений: 18
08.06.2019, 19:04  [ТС]
Признак отсутствия? Это как?

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

Тоесть если я отгрузился в четверг к примеру
Отчет в субботу
Но с вс по чт яж принимал чтото что должно в отчет включено должно быть.
А таблица получается заполнена с момента отгрузки тоесть остаток чт-сб+ то что на бумажку написал

А строки с этим волшебным признаком отсутствия смогут участвовать в вычислениях если к примеру буду цеплятся к диапазону дат?
0
 Аватар для krapotkin
6847 / 4674 / 1463
Регистрация: 14.04.2014
Сообщений: 20,660
Записей в блоге: 21
09.06.2019, 08:44
давайте еще раз расскажем про учет движения ТМЦ...
в простейшем чисто учебном случае нам нужны ДВЕ таблицы
1.справочник товаров
2.таблица движения товаров
IDвремя_регистрацииID товараКоличество
если количество товара >0 это приход
если количество <0 это расход
тогда кол-во на складе на момент XXX
SQL
1
SELECT SUM(количество) FROM таблица_движения WHERE ID_товара=:GOODS_ID AND время_регистрации<=:XXX
и никаких удалений!
1
Эксперт Pascal/Delphi
 Аватар для mmm_corp
103 / 91 / 32
Регистрация: 30.05.2015
Сообщений: 594
09.06.2019, 15:57
Oracle 11 SQL
1
SELECT COUNT.... FROM ... WHERE условия выборки
и получите к-во
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.06.2019, 15:57
Помогаю со студенческими работами здесь

Как сделать проверку на наличие недопустимого слова?
Как сделать следующее: Строка: hello world test На выходе: Ошибка, потому что слово test не предусмотрено. Мне нужно сделать...

Как сделать проверку базы адресов на наличие мертвых ссылок?
Как сделать проверку базы адресов на наличие мертвых ссылок?

Как сделать проверку на наличие свойства и только потом вывести значение ?
Здравствуйте! На странице разместил bitrix:news.line подключил несколько инфоблоков, подключены как просто инфоблок новости с картинкой так...

Как сделать что если нет данных в таблице, чтобы шаблон этой самой таблице не выводился а писалось что данных в таблице нет
В общем проблема такая, есть админка где выводится список жалоб которые без ответа, когда они есть то всё нормально список выводится и с...

Сделать проверку на наличие цифр в Edit
Здравствуйте мне нужна ваша помощь. У меня есть Edit и Memo. Нужно вывести цифры в Edit и вывести в Memo. Это я сделал, но есть одно но,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru