NZ не поддается

Baz2
Дата: 21.09.2005 13:30:55
Всем привет!
A2002 mdb
FAQ мне не помог, Access help тоже
Может ли кто объяснить почему следующая формула в запросе все равно оставляет поле пустым:
Nz([AmntPrinc];0)+((((Nz([AmntPrinc];0)/100)*Nz([PCT];0))/365)*Nz((Date()-[DateDG]);0))
В таблице, на которой построен этот запрос AmntPrinc, PCT являются numeric,
DateDG - date/time
; на , менять не дает- ругается
Тяп-ляп
Дата: 21.09.2005 14:09:13
Хорошо бы данные посмотреть. Выведи в запросе рядом с выражением
Nz([AmntPrinc];0)+((((Nz([AmntPrinc];0)/100)*Nz([PCT];0))/365)*Nz((Date()-[DateDG]);
поля AmntPrinc, PCT, Date() и DateDG
Baz2
Дата: 21.09.2005 15:05:41
to Тяп Ляп
я не понял как ты имеешь в виду вывести рядом с запросом поля, поэтому если тебе не в лом, то вот вся база. Там в qry CCCCreditDealsМЫДАЛИ я и попытался использовать Nz. Поскольку там поле AmntNow получается Null, то и в следующем запросе CCCМЫДАЛИ все Null
Тяп-ляп
Дата: 21.09.2005 15:21:53
Запрос CCCCreditDealsМЫДАЛИ с Nz() нормально отрабатывает, если со столбца ACTION убрать условие ("МЫ ДАЛИ" Or "НАМ ГАСЯТ"):
Kod	ACTION	AmntDG	AmntPrinc	CCY	PCT	DateDG	AmntNow
101	МЫ ВЗЯЛИ	0,00	2 500,00	USD	24,00	06.09.05	2524,65753424658
102	МЫ ВЗЯЛИ	0,00	224 700,00	RUB	10,00	01.09.05	225931,232876712
103	МЫ ВЗЯЛИ	0,00	224 700,00	RUB	10,00	01.09.05	225931,232876712
Baz2
Дата: 21.09.2005 15:33:47
ну да- нормально отрабатывает, потому что в tblDG в поле ACTION со значением МЫ ВЗЯЛИ уже есть записи. А записей со значением МЫ ДАЛИ- нет.
И поэтому когда я разделяю записи таблицы на те, что МЫ ДАЛИ, и те, что МЫ ВЗЯЛИ, то если в одной из сторон записей нет, то и итоговые запросы возвращают Null, а надо бы Ноль, потому что этот Ноль у меня будет использоваться в последующих вычислениях. Пробовал помутить с IsNull в SQL инструкциях запроса, но ничего не получается. Есть мнение?
Тяп-ляп
Дата: 21.09.2005 15:42:47
Похоже, ты ожидаешь, что запрос, не возвращающий записей из-за невыполнения условия
WHERE (((tblDG.ACTION)="МЫ ДАЛИ" Or (tblDG.ACTION)="НАМ ГАСЯТ"))
сможет вернуть записи, если в секции SELECT запроса добавить NZ
Я правильно тебя понял?
Baz2
Дата: 21.09.2005 15:53:16
ну вобщем да. Или если ему нечего возвращать, то он мне даже и Ноль не выдаст? А как же тогда Nz?
Тяп-ляп
Дата: 21.09.2005 15:58:33
автор
Или если ему нечего возвращать, то он мне даже и Ноль не выдаст
Именно так!
adv
Дата: 21.09.2005 16:03:09
Baz2
А как же тогда Nz?
nz применяется к значению поля. Если возвращается пустая таблица, то и применять её не к чему.
ANTIVIR
Дата: 21.09.2005 16:04:15
Baz2
ну вобщем да. Или если ему нечего возвращать, то он мне даже и Ноль не выдаст? А как же тогда Nz?

Смотрим хелп по NZ
Nz(variant[, valueifnull])
You can use the Nz function to return zero, a zero-length string (" "), or another specified value when a Variant is Null.