Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Access Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Null в 0  [new]
MaxP
Member

Откуда:
Сообщений: 28
Народ я снова с этим вопросом

У Меня есть запрос
Количество Тип Филиал

Так вот при некоторых подсчетах "количество" выдает Null мне надо его заменить на 0

Я пишу в "условии отбора"

Nz([Количество],0)

И этот урод всерано не хочет дать мне 0
22 окт 02, 16:35    [67486]     Ответить | Цитировать Сообщить модератору
 Re: Null в 0  [new]
наутилус
Member

Откуда: UA
Сообщений: 1237
так не в условии отбора ставить это...а вместо поля Колличество ставите... nz([Колличество];0)
22 окт 02, 16:47    [67493]     Ответить | Цитировать Сообщить модератору
 Re: Null в 0  [new]
mahoune
Member

Откуда: Moscow
Сообщений: 5664
Ну усли у тебя ISNULL([Количество]) возвращает TRUE то должно работать!
В конце концов попробуй так
IIF(ISNULL([Количество]),"НУЛЕВОЕ","НЕ НУЛЕВОЕ")
22 окт 02, 16:50    [67495]     Ответить | Цитировать Сообщить модератору
 Re: Null в 0  [new]
klmnop
Guest
Что-то давненько вы бьетесь с этой проблемой. Давайте подробней - версия акеса, пример данных, что мечтаете получить на выходе.
22 окт 02, 16:51    [67496]     Ответить | Цитировать Сообщить модератору
 Re: Null в 0  [new]
MaxP
Member

Откуда:
Сообщений: 28
Народ я скоро раз...еб....уу...у... этот комп.
Короче она все равно не работает....
Может еше есть решения... ????
22 окт 02, 17:00    [67502]     Ответить | Цитировать Сообщить модератору
 Re: Null в 0  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24584
Незнаю пройдет ли ето в аксесе,но поробуй так
select isnull(field,0) from table
22 окт 02, 17:30    [67538]     Ответить | Цитировать Сообщить модератору
 Re: Null в 0  [new]
MaxP
Member

Откуда:
Сообщений: 28
Аксес сразу оху...ел... от такой темы и Выслал меня... я даже не понял точно куда....
22 окт 02, 17:35    [67547]     Ответить | Цитировать Сообщить модератору
 Re: Null в 0  [new]
sFx
Member

Откуда:
Сообщений: 256
Напиши текст запроса
22 окт 02, 17:37    [67549]     Ответить | Цитировать Сообщить модератору
 Re: Null в 0  [new]
MaxP
Member

Откуда:
Сообщений: 28
SELECT Sum([Детали заказов (реализация)].Количество) AS VK, [Заказы(реализация)].Filials, Товар.Тип
FROM ((S_FILIAL INNER JOIN [Детали заказов (реализация)] ON S_FILIAL.[FIL ID] = [Детали заказов (реализация)].Filials) INNER JOIN [Заказы(реализация)] ON ([Заказы(реализация)].Filials = [Детали заказов (реализация)].Filials) AND ([Заказы(реализация)].[Номер заказа] = [Детали заказов (реализация)].[Номер заказа]) AND (S_FILIAL.[FIL ID] = [Заказы(реализация)].Filials)) INNER JOIN Товар ON (Товар.Filials = [Детали заказов (реализация)].Filials) AND (Товар.[Код товара] = [Детали заказов (реализация)].[Код товара]) AND (S_FILIAL.[FIL ID] = Товар.Filials)
WHERE ((([Заказы(реализация)].Форма_оплаты_Num)=3 Or ([Заказы(реализация)].Форма_оплаты_Num)=4) AND (([Заказы(реализация)].[Дата поступления])>=[Forms]![Кол-во]![StartDate] And ([Заказы(реализация)].[Дата поступления])<=[Forms]![Кол-во]![FinDate]))
GROUP BY [Заказы(реализация)].Filials, Товар.Тип
HAVING ((([Заказы(реализация)].Filials)=[Forms]![Кол-во]![FilCode]) AND ((Товар.Тип)=[Forms]![Кол-во]![Tov]));
22 окт 02, 17:43    [67562]     Ответить | Цитировать Сообщить модератору
 Re: Null в 0  [new]
am (a_mitin)
Member

Откуда: Москва
Сообщений: 147
Так пишешь?
SELECT Sum(nz([Детали заказов (реализация)].Количество;0)) AS VK
22 окт 02, 17:57    [67576]     Ответить | Цитировать Сообщить модератору
 Re: Null в 0  [new]
MaxP
Member

Откуда:
Сообщений: 28
... Хм... А Ты уверен в правельности синтассиса ???
22 окт 02, 18:07    [67588]     Ответить | Цитировать Сообщить модератору
 Re: Null в 0  [new]
MaxP
Member

Откуда:
Сообщений: 28
И Так всерано не хочет.......... :(.....
22 окт 02, 18:16    [67597]     Ответить | Цитировать Сообщить модератору
 Re: Null в 0  [new]
MaxP
Member

Откуда:
Сообщений: 28
SELECT Sum(IIf(IsNull([Детали заказов (реализация)].[Количество]),0,[Детали заказов (реализация)].[Количество])) AS VK, [Заказы(реализация)].Filials, Товар.Тип
FROM ((S_FILIAL INNER JOIN [Детали заказов (реализация)] ON S_FILIAL.[FIL ID] = [Детали заказов (реализация)].Filials) INNER JOIN [Заказы(реализация)] ON ([Заказы(реализация)].Filials = [Детали заказов (реализация)].Filials) AND ([Заказы(реализация)].[Номер заказа] = [Детали заказов (реализация)].[Номер заказа]) AND (S_FILIAL.[FIL ID] = [Заказы(реализация)].Filials)) INNER JOIN Товар ON (Товар.Filials = [Детали заказов (реализация)].Filials) AND (Товар.[Код товара] = [Детали заказов (реализация)].[Код товара]) AND (S_FILIAL.[FIL ID] = Товар.Filials)
WHERE ((([Заказы(реализация)].Форма_оплаты_Num)=3 Or ([Заказы(реализация)].Форма_оплаты_Num)=4) AND (([Заказы(реализация)].[Дата поступления])>=[Forms]![Кол-во]![StartDate] And ([Заказы(реализация)].[Дата поступления])<=[Forms]![Кол-во]![FinDate]))
GROUP BY [Заказы(реализация)].Filials, Товар.Тип
HAVING ((([Заказы(реализация)].Filials)=[Forms]![Кол-во]![FilCode]) AND ((Товар.Тип)=[Forms]![Кол-во]![Tov]));



И Так то же не пашет....
22 окт 02, 18:25    [67608]     Ответить | Цитировать Сообщить модератору
 Re: Null в 0  [new]
BAlex
Member

Откуда: Львов (Украина)
Сообщений: 119
Для начала попробуйте забрать предложения "WHERE..." и "HAVING...": будет ли у вас появляться 0 вместо NULL?
22 окт 02, 18:57    [67624]     Ответить | Цитировать Сообщить модератору
 Re: Null в 0  [new]
mahoune
Member

Откуда: Moscow
Сообщений: 5664
Так он уже тренировался на коротких запросах! Говорит - не работает!
Предлогали-же уже вот такой вариант
SELECT 

IIF(ISNULL(b.[Количество]),"НУЛЕВОЕ","НЕ НУЛЕВОЕ")
FROM
[Детали заказов (реализация)] b

Говорит не работает!
23 окт 02, 10:03    [67747]     Ответить | Цитировать Сообщить модератору
 Re: Null в 0  [new]
BAlex
Member

Откуда: Львов (Украина)
Сообщений: 119
В этом запросе
SELECT 

IIF(ISNULL(b.[Количество]),"НУЛЕВОЕ","НЕ НУЛЕВОЕ")
FROM
[Детали заказов (реализация)] b
не видно варианта "не работает". Постоянно выдает "НЕ НУЛЕВОЕ"?
23 окт 02, 11:15    [67790]     Ответить | Цитировать Сообщить модератору
 Re: Null в 0  [new]
MaxP
Member

Откуда:
Сообщений: 28
..Я все попробывал... не хочет и все.....

Если не так то как......
23 окт 02, 11:51    [67814]     Ответить | Цитировать Сообщить модератору
 Re: Null в 0  [new]
denche
Member

Откуда: Алчевск (Украина)
Сообщений: 35
ты ж так и не ответил, что выдает на такой запрос:

SELECT

IIF(ISNULL(b.[Количество]),"НУЛЕВОЕ","НЕ НУЛЕВОЕ")

FROM

[Детали заказов (реализация)] b

и поле b.[Количество] точно числовое, а не текстовое??
23 окт 02, 12:05    [67815]     Ответить | Цитировать Сообщить модератору
 Re: Null в 0  [new]
mahoune
Member

Откуда: Moscow
Сообщений: 5664
Так он и говорит: Всегда выдает НЕ НУЛЕВОЕ!
Так что, одно из двух!
Либо поле текстовое, хотя оно тоже, помоему, может иметь значение NULL, либо в поле значение не NULL :)

Syntax
IsNull(expression)
The required expression argument is a Variant containing a numeric expression or string expression.

-- Со String'ами работает ---

Remarks
IsNull returns True if expression is Null; otherwise, IsNull returns False. If expression consists of more than one variable, Null in any constituent variable causes True to be
returned for the entire expression.

--- Как я понял если в скобках стоит выражение а не переменная, ВСЕГДА возвращает True ---

The Null value indicates that the Variant contains no valid data. Null is not the same as Empty, which indicates that a variable has not yet been initialized. It is also not the same as a zero-length string (""), which is sometimes referred to as a null string.

Important
Use the IsNull function to determine whether an expression contains a Null value. Expressions that you might expect to evaluate to True under some circumstances, such as If Var = Null and If Var <> Null, are always False. This is because any expression containing a Null is itself Null and, therefore, False.

--- А тут я ничего не понял :( ---
23 окт 02, 12:33    [67837]     Ответить | Цитировать Сообщить модератору
 Re: Null в 0  [new]
BAlex
Member

Откуда: Львов (Украина)
Сообщений: 119
Возвращает значение типа Boolean, показывающее, является ли результатом выражения пустое значение (Null).

Синтаксис

IsNull(выражение)

Обязательный аргумент выражение представляет выражение типа Variant, содержащее числовое выражение или строковое выражение.

Дополнительные сведения

Функция IsNull возвращает True, если выражение имеет значение Null; в противном случае IsNull возвращает значение False. Если выражение содержит несколько переменных, то значение Null любой из этих переменных приводит к значению True, возвращаемому для всего выражения.

Значение Null указывает, что переменная типа Variant не содержит допустимых данных. Не следует путать значение Null со значением Empty
, указывающим, что переменная не была инициализирована. Это значение также не эквивалентно пустой строке (""), которую иногда называют строкой нулевой длины.

Внимание! Функция IsNull проверяет, содержит ли выражение значение Null. Выражения, которые могли бы при некоторых обстоятельствах иметь значение True, например, If Var = Null and If Var <> Null, всегда возвращают значение False. Еще раз подчеркнем, что любое выражение, содержащее внутри себя значение Null, всегда имеет значение Null и, следовательно, возвращает False.
23 окт 02, 12:45    [67854]     Ответить | Цитировать Сообщить модератору
 Re: Null в 0  [new]
denche
Member

Откуда: Алчевск (Украина)
Сообщений: 35
если поле не числовое, а текстовое, то в него могли забить пробелы.
а такой запрос не отрабатывает

select b.* from [Детали заказов (реализация)] b
where b.[Количество] is null

интерестно много таких строк?
если нету не одной, тогда можно изменить условие

where b.[Количество] = '', а потом where b.[Количество] = ' '
23 окт 02, 12:47    [67858]     Ответить | Цитировать Сообщить модератору
 Re: Null в 0  [new]
BAlex
Member

Откуда: Львов (Украина)
Сообщений: 119
2MaxP:
Проверьте тип поля "Количество" функцией TypeName
23 окт 02, 12:48    [67859]     Ответить | Цитировать Сообщить модератору
 Re: Null в 0  [new]
MaxP
Member

Откуда:
Сообщений: 28
...Народ... А кто Из Вас Живет в Питере....
23 окт 02, 13:52    [67925]     Ответить | Цитировать Сообщить модератору
 Re: Null в 0  [new]
sFx
Member

Откуда:
Сообщений: 256
2MaxP: по моему опыту, если у всех работает а у тебя не работает, значит проблема в тебе(в твоей структуре БД, запроса и т.д.) пришли свою базу по мылу(с минимумом данных и этот запрос.) Проше самому посмотреть и показать где ошибка, чем тыкаться во все тяжкие с такой ерундовой проблемой. И вобще не понятно, где в вашем запросе функция Nz(), на всякий случай перепечатываю запрос.
SELECT Sum([Детали заказов (реализация)].Количество) AS VK, [Заказы(реализация)].Filials, Товар.Тип 

FROM ((S_FILIAL INNER JOIN [Детали заказов (реализация)] ON S_FILIAL.[FIL ID] = [Детали заказов (реализация)].Filials) INNER JOIN [Заказы(реализация)] ON ([Заказы(реализация)].Filials = [Детали заказов (реализация)].Filials) AND ([Заказы(реализация)].[Номер заказа] = [Детали заказов (реализация)].[Номер заказа]) AND (S_FILIAL.[FIL ID] = [Заказы(реализация)].Filials)) INNER JOIN Товар ON (Товар.Filials = [Детали заказов (реализация)].Filials) AND (Товар.[Код товара] = [Детали заказов (реализация)].[Код товара]) AND (S_FILIAL.[FIL ID] = Товар.Filials)
WHERE ((([Заказы(реализация)].Форма_оплаты_Num)=3 Or ([Заказы(реализация)].Форма_оплаты_Num)=4) AND (([Заказы(реализация)].[Дата поступления])>=[Forms]![Кол-во]![StartDate] And ([Заказы(реализация)].[Дата поступления])<=[Forms]![Кол-во]![FinDate]))
GROUP BY [Заказы(реализация)].Filials, Товар.Тип
HAVING ((([Заказы(реализация)].Filials)=[Forms]![Кол-во]![FilCode]) AND ((Товар.Тип)=[Forms]![Кол-во]![Tov]));
23 окт 02, 16:22    [68074]     Ответить | Цитировать Сообщить модератору
 Re: Null в 0  [new]
sFx
Member

Откуда:
Сообщений: 256
кстати
этот текст
(([Заказы(реализация)].[Дата поступления])>=[Forms]![Кол-во]![StartDate] And ([Заказы(реализация)].[Дата поступления])<=[Forms]![Кол-во]![FinDate]))


можно заменить на такой:

(([Заказы(реализация)].[Дата поступления]) between  [Forms]![Кол-во]![StartDate] And [Forms]![Кол-во]![FinDate]))
23 окт 02, 16:27    [68078]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft Access Ответить