Суммирование с пустыми полями ...

Maksimus_black
Дата: 21.02.2008 12:08:15
Добрый день !!!
Помогите пожалуйста по следующему вопросу:
Есть у меня запрос, который выбирает записи из 2-ух других запросов и считает их сумму (сумму соответствующих полей двух разных запросов), эти запросы (из которых выбирается) связаны между собой с объединением полей, так вот какая проблема:
Случается такое, что в первом запросе есть заказ и на него есть данные, во втором такого заказа нету, но так как стоит объдинение формируются пустые поля и для этого заказа из второго запроса, и при суммирование числа (из первого запроса) и соответствующего пустого поля (из второго запроса), получается пустое поле, а мне нужно что бы получалось первое число, т.е. по сути происходило суммирование с нулём.
Если же убрать объёдинение, то оно просто перестанет выводить те заказы данные для которых отсутствуют во втором запросе.
Может возможно каким-либо образом заполнять пустые поля нулями ?
Или возможно решить эту проблему как-либо по другому ...
Заранее благодарен за помощь )))
P.S. Прилагаю SQL код запроса, что бы было проще разобраться:
SELECT Sum([Запрос для учёта пластин офсетный.Sum-Sum-Данные1])+Sum([Запрос для учёта пластин формный.Sum-Данные6]) AS d1, Sum([Запрос для учёта пластин офсетный.Sum-Sum-Данные2])+Sum([Запрос для учёта пластин формный.Sum-Данные5]) AS d2, [Запрос для учёта пластин офсетный].[Sum-Sum-Данные3], [Запрос для учёта пластин офсетный].[Sum-Sum-Данные4], [Запрос для учёта пластин офсетный].[Sum-Sum-Данные5], Sum([Запрос для учёта пластин офсетный.Sum-Sum-Данные6])+Sum([Запрос для учёта пластин формный.Sum-Данные3]) AS d6, Sum([Запрос для учёта пластин офсетный.Sum-Sum-Данные7])+Sum([Запрос для учёта пластин формный.Sum-Данные4]) AS d7, [Запрос для учёта пластин офсетный].[№ заказа], [Запрос для учёта пластин офсетный].Наименование, [Запрос для учёта пластин офсетный].[Код заказа], [Запрос для учёта пластин офсетный].Шифр
FROM [Запрос для учёта пластин офсетный] LEFT JOIN [Запрос для учёта пластин формный] ON [Запрос для учёта пластин офсетный].[Код заказа] = [Запрос для учёта пластин формный].[Код заказа]
GROUP BY [Запрос для учёта пластин офсетный].[Sum-Sum-Данные3], [Запрос для учёта пластин офсетный].[Sum-Sum-Данные4], [Запрос для учёта пластин офсетный].[Sum-Sum-Данные5], [Запрос для учёта пластин офсетный].[№ заказа], [Запрос для учёта пластин офсетный].Наименование, [Запрос для учёта пластин офсетный].[Код заказа], [Запрос для учёта пластин офсетный].Шифр;
mds_world
Дата: 21.02.2008 12:15:21
Используйте функцию Nz(Поле, ЗначениеЕслиNull). В вашем случае Nz(Поле,0)
:-Q
Дата: 21.02.2008 12:18:56
офф.
запрос не офсетный,
пластины офсетные.
Maksimus_black
Дата: 21.02.2008 12:23:15
Спасибо, почитал хелп, понял что надо использовать действительно именно эту функцию, но возник ещё однин вопрос:
Куда вможно вставить данную функцию в запросе и можно ли вообще её использовать в запросе ?
Maksimus_black
Дата: 21.02.2008 12:30:58
Спасибо большое уже разобрался, надопросто поставить Nz перед каждым полем в запрое, значение которого возможно Null ...
Сделал, всё считает )))
Ещё раз ОГРОМНОЕ спасибо ...
mds_world
Дата: 21.02.2008 12:37:18
Maksimus_black
Спасибо, почитал хелп, понял что надо использовать действительно именно эту функцию, но возник ещё однин вопрос:
Куда вможно вставить данную функцию в запросе и можно ли вообще её использовать в запросе ?

Maksimus_black,
почитайте еще про алиасы полей, таблиц, запросов. Ну, невозможно читать, да и копировать, ссылаться на этого монстра. В предложении From пишете
FROM [Запрос для учёта пластин офсетный] as z1
и далее всюду, в том числе в Select, уже обращаетесь к нему по имени z1

В нвнешней записи Nz надо писать так, предполагая, что [Запрос для учёта пластин офсетный].[Sum-Sum-Данные3], это название поля запроса
Nz([Запрос для учёта пластин офсетный].[Sum-Sum-Данные3], 0)
Maksimus_black
Дата: 21.02.2008 14:18:12
Да совершенно верно [Запрос для учёта пластин офсетный].[Sum-Sum-Данные3], это действительно название поля запроса, только ноль после запятой я не писал, он по дефолту принимает ноль, т.е. я писал просто Nz([Запрос для учёта пластин офсетный].[Sum-Sum-Данные3]) и всё работает )))
Большое спасибо ещё раз )))