powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Ошибка в запросе
25 сообщений из 37, страница 1 из 2
Ошибка в запросе
    #32279820
Фотография Vsevolod V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Помогите найти ошибку:
Код: plaintext
1.
2.
3.
4.
SELECT  "Себестоимость"  As Наименование , Sum(NZ(round([Зад_пост].[Эквивалент1], 2 ), 0 )) 
 - Sum(nz(round([Зад_пост].[Эквивалент2], 2 ), 0 ))  + Sum(nz(round([sklad].[Эквивалент1], 2 ), 0 ))
 - Sum(nz(round([sklad].[Эквивалент2], 2 ), 0 )) + Sum(nz(round([Bill_charge].[Эквивалент2], 2 ), 0 ))
 - Sum(nz(round([Bill_charge].[Эквивалент1], 2 ), 0 )) AS [Сумма]
FROM Зад_пост,sklad,Bill_charge

Проблема в том, что ноль все время получается
...
Рейтинг: 0 / 0
Ошибка в запросе
    #32279835
Витал
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А по отдельности каждый Sum тоже 0?

Вообще-то лично я NZ() не люблю (почему-то). Предпочитаю IIF().
...
Рейтинг: 0 / 0
Ошибка в запросе
    #32279870
Фотография Vsevolod V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Черт подери! Не криво работает, если в одной из этих таблиц нет нужного значения :(
А я так с этим NZ старался
...
Рейтинг: 0 / 0
Ошибка в запросе
    #32279871
Фотография Vsevolod V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не криво = криво :)
...
Рейтинг: 0 / 0
Ошибка в запросе
    #32279878
Фотография Лифчик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Витал: здесь (давно уже) целая дискуссия развивалась по поводу хороших свойств IIF
...
Рейтинг: 0 / 0
Ошибка в запросе
    #32279904
Витал
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Лифчик
В его достоинствах я и не сомневался. Хотя полюбопытствовать - полюбопытствовал бы. Об чем дискуссион. А может и видел уже.
...
Рейтинг: 0 / 0
Ошибка в запросе
    #32279907
Фотография Vsevolod V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как я понял явно выраженных ошибок нет...
Тогда может есть какие-нибудь соображения по моему вопросу?
Что-то я не уверен, что во всем виноват NZ
...
Рейтинг: 0 / 0
Ошибка в запросе
    #32279922
Фотография Лифчик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Витал: вот пусть завсегдатаи вспомнят, я только отдаленно - то ли IIF неоптимально в запросах работает, то ли вообще врет в некоторых случаях...больше - увы ничего не вспоминается
...
Рейтинг: 0 / 0
Ошибка в запросе
    #32279926
Фотография Vsevolod V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Господа, заведите себе топик
...
Рейтинг: 0 / 0
Ошибка в запросе
    #32279930
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Могу подсказать одну особенность IIF: он сначала вычисляет все свои параметры, а потом выбирает один из них. То есть он работает в среднем в 2 раза медленнее, чем обычный if.
...
Рейтинг: 0 / 0
Ошибка в запросе
    #32279945
Фотография Vsevolod V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сааанныычч, ну хоть ты помоги :)
Почему если в одной таблице нет нужного для вычисления знгачения, то ничего не вычисляется????
...
Рейтинг: 0 / 0
Ошибка в запросе
    #32279946
sasha_1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а еще есть хорошие функции Choose и Switch.
иногда оооочень удобные.
...
Рейтинг: 0 / 0
Ошибка в запросе
    #32279949
sasha_1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всеволод.
чего за функция round?
наверняка она Null не понимает.
надо писать
Sum(round(nz([Зад_пост].[Эквивалент1],2),0))
...
Рейтинг: 0 / 0
Ошибка в запросе
    #32279960
Фотография Vsevolod V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
round типа это функция округления...
я чтобы проверить то, что ты имееш ввиду вообще ее убрал
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
SELECT  "Себестоимость"  As Наименование , Sum(NZ([Зад_пост].[Эквивалент1], 0 )) 
- Sum(nz([Зад_пост].[Эквивалент2], 0 ))  
+ Sum(nz([sklad].[Эквивалент1], 0 ))  
- Sum(nz([sklad].[Эквивалент2], 0 )) 
+ Sum(nz([Bill_charge].[Эквивалент2], 0 ))
- Sum(nz([Bill_charge].[Эквивалент1], 0 )) AS [Сумма]
FROM Зад_пост,sklad,Bill_charge
WHERE ((([Зад_пост].[Реф №])=[forms]![заказ]![ref]) 
and (([sklad].[Реф №])=[forms]![заказ]![ref]) 
and (([Bill_charge].[Реф №])=[forms]![заказ]![ref]))
...
Рейтинг: 0 / 0
Ошибка в запросе
    #32279961
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
А что значит нет нужного значения? Это весь селект?

В нем нету where, следовательно ниоткуда не следует, какое значение "нужное".

В нем нету group by, следовательно непонятно, как вообще будет работать Sum.

В нем нету join, следовательно количество записей в результате будет равно произведению количеств записей в 3 исходных таблицах. В частном случае, если в одной из таблиц 0 записей, то и в результате будет 0.
...
Рейтинг: 0 / 0
Ошибка в запросе
    #32279966
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
О. Появилось where. Теперь проще: если where не находит нужных записей, то их и не видно.
...
Рейтинг: 0 / 0
Ошибка в запросе
    #32279972
Фотография Vsevolod V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Where я зыбыл скопировать тогда :)
Все! Я сообразил! Во Where надо пихать что-то вроде Or IsNull
...
Рейтинг: 0 / 0
Ошибка в запросе
    #32279973
Фотография Vsevolod V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем спасибо :)
...
Рейтинг: 0 / 0
Ошибка в запросе
    #32279983
Фотография Vsevolod V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотя нет - Null тут не покатит:)
Сделал так:
Код: plaintext
1.
2.
WHERE ((([Зад_пост].[Реф №])=[forms]![заказ]![ref] or  null) 
and (([sklad].[Реф №])=[forms]![заказ]![ref] or null) 
and (([Bill_charge].[Реф №])=[forms]![заказ]![ref] or null))

И все равно не работает
...
Рейтинг: 0 / 0
Ошибка в запросе
    #32279990
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Есть ли среди этих 3 таблиц одна такая, что в ней нужное число обязательно есть, а если в ней нет, то и нигде нет?
...
Рейтинг: 0 / 0
Ошибка в запросе
    #32279996
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Свое замечание про group by я снимаю. :^)
...
Рейтинг: 0 / 0
Ошибка в запросе
    #32279999
Фотография Vsevolod V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть ли среди этих 3 таблиц одна такая, что в ней нужное число обязательно есть, а если в ней нет, то и нигде нет?

Если в одной из трех таблиц (любой) нет нужного числа, то и нигде нет
...
Рейтинг: 0 / 0
Ошибка в запросе
    #32280018
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
То есть проблема, которую мы решаем, касается только случая, когда этого значения нет нигде?
...
Рейтинг: 0 / 0
Ошибка в запросе
    #32280063
Фотография Vsevolod V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
То есть проблема, которую мы решаем, касается только случая, когда этого значения нет нигде?
Других диффектов я пока не нашел :)
...
Рейтинг: 0 / 0
Ошибка в запросе
    #32280069
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
1. В 17:37 ты говорил - "если в одной из этих таблиц нет нужного значения".\r
\r
2. А в чем проблема-то? Если в том, что выдается 0, то так и надо.\r
\r
3. К твоему 18:43 поправка:\r
\r
WHERE ((([Зад_пост].[Реф №])=[forms]![заказ]![ref] or [Зад_пост].[Реф №] is null) \r
and (([sklad].[Реф №])=[forms]![заказ]![ref] or [sklad].[Реф №] is null) \r
and (([Bill_charge].[Реф №])=[forms]![заказ]![ref] or [Bill_charge].[Реф №] is null))\r
\r
4. Возможно, что-нибудь полезное найдешь тут:\r
\r
/topic/50814\r
\r
Постановка задачи: "если такая цена в таблице не найдена - количество равно нулю". См. мой ответ от 26 сен 03, 17:59.
...
Рейтинг: 0 / 0
25 сообщений из 37, страница 1 из 2
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Ошибка в запросе
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]