powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Синтаксис. Объединить два Select IIF(IsNull
17 сообщений из 17, страница 1 из 1
Синтаксис. Объединить два Select IIF(IsNull
    #39522309
Два запроса которые работают отдельно друг от друга.

Код: plsql
1.
Select IIF(IsNull((Select [Field1] From qdfCrosses where AutoPartID = <CrossID> or AutoPartID = <AutoPartID>)),’,<AutoPartID>,<CrossID>,’, X)



где Х должен быть

Код: sql
1.
Select IIf(IsNull((Select [Field1] From qdfCrosses where AutoPartID = <AutoPartID>)), 'Раз', 'Два')



Возможно ли вставить вместо Х нужный запрос ?
...
Рейтинг: 0 / 0
Синтаксис. Объединить два Select IIF(IsNull
    #39522331
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нафига этот БРЕД?
Код: sql
1.
2.
3.
4.
5.
Select IIF( IsNull( [Field1] )
              , ’,<AutoPartID>,<CrossID>,’
              , IIf( AutoPartID = <AutoPartID>, 'Раз', 'Два')
             )
  From qdfCrosses where AutoPartID = <CrossID> or AutoPartID = <AutoPartID>
...
Рейтинг: 0 / 0
Синтаксис. Объединить два Select IIF(IsNull
    #39522599
Заморочился с созданием таблицы аналогов(кроссов).Бред потому что опыта в SQL не много.

Спасибо за сокращение запроса, но не срабатывает значение при истине. А именно
Код: sql
1.
2.
IIF( IsNull( [Field1] )
     , ’,<AutoPartID>,<CrossID>,’



Выходит пустая строка. Даже если вместо моих данных текст туда ввести, типа 'текст'. Где ошибка?
...
Рейтинг: 0 / 0
Синтаксис. Объединить два Select IIF(IsNull
    #39522604
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Литвинюк АнтонЗаморочился с созданием таблицы аналогов(кроссов).Бред потому что опыта в SQL не много.

Спасибо за сокращение запроса, но не срабатывает значение при истине. А именно
Код: sql
1.
2.
IIF( IsNull( [Field1] )
     , ’,<AutoPartID>,<CrossID>,’



Выходит пустая строка. Даже если вместо моих данных текст туда ввести, типа 'текст'. Где ошибка?

Ошибка в 17 строке. Это всем известно.

привыкни приводить полный текст запроса.

Код: sql
1.
2.
3.
4.
5.
6.
7.
Select IIF( IsNull( [Field1] )
              , ’,<AutoPartID>,<CrossID>,’
              , IIf( AutoPartID = <AutoPartID>, 'Раз', 'Два')
             )
  From  ( select 1 as x ) as dummi
          left outer join ( select * from qdfCrosses where AutoPartID = <CrossID> or AutoPartID = <AutoPartID> ) as t on 1 = 1
  
...
Рейтинг: 0 / 0
Синтаксис. Объединить два Select IIF(IsNull
    #39522640
Вроде полный текст запроса был выше.

Код: plsql
1.
2.
3.
4.
5.
Select IIF( IsNull( [Field1] )
              , ’Текст’
              , IIf( AutoPartID = <AutoPartID>, 'Раз', 'Два')
             )
  From qdfCrosses where AutoPartID = <CrossID> or AutoPartID = <AutoPartID>



Смысл такой, что если строки Field1 нет совсем, то "текст", иначе выбирается один из двух вариантов.
И как я уже писал, проблема одна - вместо истины (’Текст’) выводит пустую строку. В остальном всё отлично.

И похоже что если строки Field1 нет совсем, то она и не NULL вовсе! Так ведь? И что тогда писать вместо IsNull?
...
Рейтинг: 0 / 0
Синтаксис. Объединить два Select IIF(IsNull
    #39522673
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Литвинюк Антонесли строки Field1 нет совсем, то она и не NULL вовсе!
Строки - это в блокноте. В таблицах есть записи и поля.
Записи может и не быть (если такие условия отбора, или таблица вообще не содержит записей). Но если запись есть, то имеющегося в структуре таблицы поля в этой записи не быть не может в принципе. А если в визуальном отображении там не видно значения, то оно либо Null, либо состоит из неотображаемых символов (например, там исключительно пробелы, или вообще пустая строка - которая с точки зрения MS Access ни разу не Null)...

Проверяется легко - если Field Is Null, то Len(Field) Is Null, иначе целое значение (для пустой строки - ноль).
...
Рейтинг: 0 / 0
Синтаксис. Объединить два Select IIF(IsNull
    #39522740
Хорошо, тогда у меня нет записи c подходящим полем Field1 под условие Where

Чему тогда равняется Field1 ?
Поле текстовое.
...
Рейтинг: 0 / 0
Синтаксис. Объединить два Select IIF(IsNull
    #39522748
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Литвинюк Антону меня нет записи c подходящим полем Field1 под условие Where

Чему тогда равняется Field1 ?
В таком случае у Вас НЕТ ЗАПИСИ. Соответственно НЕТ никакого Field1. Даже Null-евого.
...
Рейтинг: 0 / 0
Синтаксис. Объединить два Select IIF(IsNull
    #39522788
В таком случае будет правильным COUNT(Field1) = 0.
Код: plsql
1.
2.
3.
4.
Select IIF((COUNT(Field1) = 0)
                      , ‘Да’
                      , ‘нет’) 
    From qdfCrosses where AutoPartID = <CrossID> or AutoPartID = <AutoPartID>


Проверил, работает. Если полей НЕТ, то и количество равно нулю.

Но дальше опять засада! Пытаюсь Вместо "нет" вставить IIf( AutoPartID = <AutoPartID>, 'Раз', 'Два') и выдаёт ошибку синтаксиса!
Код: plsql
1.
2.
3.
4.
5.
Select IIF((COUNT(Field1) = 0)
              , ’Да’
              , IIf( AutoPartID = <AutoPartID>, 'Раз', 'Два')
             )
  From qdfCrosses where AutoPartID = <CrossID> or AutoPartID = <AutoPartID>



А ведь в варианте IIf(IsNull(Field1) эта часть работала...Кто нибудь знает почему так?
...
Рейтинг: 0 / 0
Синтаксис. Объединить два Select IIF(IsNull
    #39522795
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Литвинюк АнтонВ таком случае будет правильным COUNT(Field1) = 0.
Код: plsql
1.
2.
3.
4.
Select IIF((COUNT(Field1) = 0)
                      , ‘Да’
                      , ‘нет’) 
    From qdfCrosses where AutoPartID = <CrossID> or AutoPartID = <AutoPartID>


Проверил, работает. Если полей НЕТ, то и количество равно нулю.

Но дальше опять засада! Пытаюсь Вместо "нет" вставить IIf( AutoPartID = <AutoPartID>, 'Раз', 'Два') и выдаёт ошибку синтаксиса!
Код: plsql
1.
2.
3.
4.
5.
Select IIF((COUNT(Field1) = 0)
              , ’Да’
              , IIf( AutoPartID = <AutoPartID>, 'Раз', 'Два')
             )
  From qdfCrosses where AutoPartID = <CrossID> or AutoPartID = <AutoPartID>



А ведь в варианте IIf(IsNull(Field1) эта часть работала...Кто нибудь знает почему так?
<AutoPartID>
недопустимый синтаксис для Access.
Что ЭТО означает?

Тебе ж говорили: "покажи настоящий запрос".

Модератор: Изменено
...
Рейтинг: 0 / 0
Синтаксис. Объединить два Select IIF(IsNull
    #39522800
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
<AutoPartID> или <CrossID>

это что за хренЬ?

Модератор: Изменено
...
Рейтинг: 0 / 0
Синтаксис. Объединить два Select IIF(IsNull
    #39522861
Как же вы такой умный не знаете, что значения в <> это текущие выбранные значения, которые я, например, ввожу в форме.
Мой софт работает на SQL Access, и вы сами, во втором сообщении, написали запрос с этим синтаксисом который работает!
Если не хотите помогать без оскорблений, косейте в другом зоопарке.
...
Рейтинг: 0 / 0
Синтаксис. Объединить два Select IIF(IsNull
    #39522905
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Литвинюк АнтонКак же вы такой умный не знаете, что значения в <> это текущие выбранные значения, которые я, например, ввожу в форме.
Мой софт работает на SQL Access, и вы сами, во втором сообщении, написали запрос с этим синтаксисом который работает!
Если не хотите помогать без оскорблений, косейте в другом зоопарке.
Ссылка на значение поля формы выглядит не так.

Модератор: Изменено

aleks222, предупреждение. Последнее. При повторении посты будут вычищаться
...
Рейтинг: 0 / 0
Синтаксис. Объединить два Select IIF(IsNull
    #39523004
MrShin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aleks222,

У нас здесь сугубо технический форум, а не болталка в соцсети, большая просьба придержать грубые эпитеты для другого места общения.
...
Рейтинг: 0 / 0
Синтаксис. Объединить два Select IIF(IsNull
    #39523078
Почему это не работает?
Код: plsql
1.
2.
3.
Select IIF((COUNT(Field1) = 0), 
              ’Да’, IIf(AutoPartID = <AutoPartID>,'Раз', 'Два')) 
              From qdfCrosses where AutoPartID = <CrossID> or AutoPartID = <AutoPartID>



А это работает
Код: plsql
1.
2.
3.
Select IIF(IsNull([Field1]),
              ’Да’, IIf(AutoPartID = <AutoPartID>,'Раз', 'Два')) 
              From qdfCrosses where AutoPartID = <CrossID> or AutoPartID = <AutoPartID>


Отличия только в первой строке. В чём причина? Как поправить?
...
Рейтинг: 0 / 0
Синтаксис. Объединить два Select IIF(IsNull
    #39523133
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
COUNT в обязательном порядке требует GROUP BY.
...
Рейтинг: 0 / 0
Синтаксис. Объединить два Select IIF(IsNull
    #39523145
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
20802563

Код: sql
1.
2.
3.
4.
5.
6.
Select IIF( IsNull( [Field1] )
              , ’,<AutoPartID>,<CrossID>,’
              , IIf( AutoPartID = <AutoPartID>, 'Раз', 'Два')
             )
  From  ( select 1 as x ) as dummy
          left outer join ( select * from qdfCrosses where AutoPartID = <CrossID> or AutoPartID = <AutoPartID> ) as t on 1 = 1



Модератор: почищено
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Синтаксис. Объединить два Select IIF(IsNull
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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