|
Почему запрос возвращает 0 вместо Null?
|
|||
---|---|---|---|
#18+
Всем привет Скидываю вам БД с одной табличкой и двумя простыми запросами В первом запросе стоит фильтр <>0 Второй запрос его использует, но всё равно возвращает 0 Я не могу понять, почему. Мне надо, чтобы там было знаение null В файле всё будет ясно Заранее спасибо за помощь.... ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2017, 14:48 |
|
Почему запрос возвращает 0 вместо Null?
|
|||
---|---|---|---|
#18+
все это делается в одном запросе: Код: vbnet 1.
С условием Not Null Рекомендую для числовых полей значение по умолчанию-0 (потом меньше писать) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2017, 16:26 |
|
Почему запрос возвращает 0 вместо Null?
|
|||
---|---|---|---|
#18+
sdku, Спасибо. Согласен на счёт нуля по умолчанию, просто в формах я предпочитаю их не видеть (так естетичней) Я тут ещё поэкспериментировал с использвованием iif Например: iif(выражение=0,null, выражение) В любом случае это выражение будет высчитываться дважды. Я таким макаром просто пытался избежать двойных вычислений. Впрочем, у меня их не много ))) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2017, 17:14 |
|
Почему запрос возвращает 0 вместо Null?
|
|||
---|---|---|---|
#18+
Настаев, при быстродействии современных РС вопрос о двукратном вычислении простейшего выражения абсолютно не актуален. А что мешает написать функцию, а еще лучше изменить структуру БД. Таблицы: 1. группы:кодГ,группа 2. товары: кодТ,группа,наименование+поля описывающие товар 3. склады: кодС,группа,товар,номерСклада,прибыло,убыло(товар зависимое от группы-оба,в форме, полеСоСписком) 4. документ: кодД,документ,№,дата группы 1:М склады М:1 документ товары 1:М ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2017, 00:49 |
|
Почему запрос возвращает 0 вместо Null?
|
|||
---|---|---|---|
#18+
Настаевв формах я предпочитаю их не видеть (так естетичней) Ну так и пропишите в форме соответствующий формат. Там же есть 3 части, пермая - для обычных данных, вторая (если задано) - для отрицательных чисел, а третья - для нулей. Так что формат Код: vbnet 1.
будет отображать нули как пустые поля, пока туда не попадет фокус ввода. НастаевНапример: iif(выражение=0,null, выражение) В любом случае это выражение будет высчитываться дважды Нет, формула в запросах с одинаковыми аргументами реально выполняется только один раз независимо от количества вызовов. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2017, 10:43 |
|
Почему запрос возвращает 0 вместо Null?
|
|||
---|---|---|---|
#18+
MrShin, спасибо большое. Вы мне очень помогли, указав нужный формат. Это значительно облегчает жизнь А по поводу двойных вычислений я только что проверил. Вот новая БД с результатом. Там видно, что Access выполняет такие выражения дважды. По всей видимости потому, что он не занимается сравнением выражений в пределах условия iif. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2017, 13:46 |
|
Почему запрос возвращает 0 вместо Null?
|
|||
---|---|---|---|
#18+
sdkuНастаев, при быстродействии современных РС вопрос о двукратном вычислении простейшего выражения абсолютно не актуален. А что мешает написать функцию, а еще лучше изменить структуру БД. Таблицы: 1. группы:кодГ,группа 2. товары: кодТ,группа,наименование+поля описывающие товар 3. склады: кодС,группа,товар,номерСклада,прибыло,убыло(товар зависимое от группы-оба,в форме, полеСоСписком) 4. документ: кодД,документ,№,дата группы 1:М склады М:1 документ товары 1:М В принципе, я так и построил свою базу за исключением одного: каждый склад у меня в отдельном поле. Это позволяет видеть наличие на каждом из них одновременно. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2017, 13:48 |
|
Почему запрос возвращает 0 вместо Null?
|
|||
---|---|---|---|
#18+
Настаев, А если изменится (по мало-ли каким причинам)количество складов? При Вашей структуре это потребует изменения (добавление поля) таблицы,а при предложенной структуре это потребует внесения записи в таблицу-источник поляСоСписком "номерСклада" (в предложенной схеме такая таблица-справочник не упоминалась,но подразумевалась). Наличие товара на каждом складе на конкретную дату извлекается очень простым запросом. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2017, 15:30 |
|
Почему запрос возвращает 0 вместо Null?
|
|||
---|---|---|---|
#18+
НастаевAccess выполняет такие выражения дважды Да, вы правы, в пределах одной строки будет выполняться столько раз, сколько вызывали. Не повторяется, если у функции одни и те же аргументы на полседующих строках. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2017, 17:45 |
|
Почему запрос возвращает 0 вместо Null?
|
|||
---|---|---|---|
#18+
MrShin, понял, спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2017, 18:46 |
|
Почему запрос возвращает 0 вместо Null?
|
|||
---|---|---|---|
#18+
sdku, согласен с вами на 200% Просто я изначально решил так сделать, не имея навыков грамотного создания БД. Теперь мне пришлось заранее создать 15 складов про запас, так сказать. А текст запроса я программно переписываю по мере необходимости. В этом есть и плюсы и минусы. Плюсы в том, что наличие на любом складе (или всех вместе взятых) я могу напрямую связывать с любой таблицей по ключевому полю. Может, я когда-то и передумаю.... всё равно спасибо за помощь ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2017, 18:50 |
|
Почему запрос возвращает 0 вместо Null?
|
|||
---|---|---|---|
#18+
Настаевпришлось заранее создать 15 складов про запас, так сказать Намучаетесь, когда дело до отчетов с перемещениями дойдет. Потом с ростом базы и проблемы с производительностью подтянутся. Очень рекомендую переделать, пока немного кода/форм наделали, дальше будет хуже. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2017, 06:16 |
|
Почему запрос возвращает 0 вместо Null?
|
|||
---|---|---|---|
#18+
НастаевПлюсы в том, что наличие на любом складе (или всех вместе взятых) я могу напрямую связывать с любой таблицей по ключевому полю. Сомнительное преимущество. Если будет одна таблица "склад" с полем "номер склада", то вы точно так же сможете связывать по полю кода товара с одним или нескольким складам, только все будет намного проще, чем мучаться с разными колонками для каждого склада. Складам сможете дать дополнительные характеристики для отбора, не придется руками делать unpivot, когда понадобится список товара по складам, особенно если какие-то характеристики товара будут зависеть от склада (локация, например). В общем поверьте хотя бы на слово, лучше переделать сейчас. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2017, 08:28 |
|
Почему запрос возвращает 0 вместо Null?
|
|||
---|---|---|---|
#18+
MrShin, ок Я и так уже испытываю проблемы при составлении отчётов А ещё мне приходится записывать список складов в массив, когда нужно выдать их список или ещё что.. Кароче, я тут наломал дров :) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.10.2017, 01:18 |
|
|
start [/forum/topic.php?fid=45&msg=39540229&tid=1611979]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
98ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
56ms |
get tp. blocked users: |
2ms |
others: | 17ms |
total: | 220ms |
0 / 0 |