Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Несоответствие типов данных в выраж-и условия отбо 
V
    Опции темы
aldari
Дата 7.5.2010, 07:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 5.3.2007

Репутация: нет
Всего: нет



 Добрый день, уважаемые форумчане!
 Помогите завершить запрос возвращающий значения первичного ключа потребителей(tbConsumer.coConsumer) расположенных на улице Гагарина в нечетных домах. Номер дома - поле  tbConsumerAlt.sHouse, тип данных - строка

Код

SELECT tbConsumerAlt.coConsumer, VAL(tbConsumerAlt.sHouse)  mod 2
FROM tbStreetAlt RIGHT JOIN tbConsumerAlt ON tbStreetAlt.coStreet = tbConsumerAlt.lcoStreet
WHERE (((tbStreetAlt.sname)=('Гагарина')));


 Надо добаивть что-то типа VAL(tbConsumerAlt.sHouse)  mod 2=1   в WHERE, но ACCESS ругается на несоответствие типов в условии запроса,
 пробывал уже срвнивать и с 1,0  1.0  '1'  "1", пишет "Несоответствие топов данных в условии отбора"

 Оператор Val преобрзует строку в число;
 mod вычисляет остаток от деления первого операнда на второй.
PM MAIL   Вверх
Akina
Дата 7.5.2010, 08:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 30
Всего: 454



Код

SELECT 
       tbConsumerAlt.coConsumer
     , (VAL(tbConsumerAlt.sHouse)  mod 2) as IsOdd

FROM 
           tbStreetAlt 
RIGHT JOIN 
           tbConsumerAlt 
        ON 
           tbStreetAlt.coStreet = tbConsumerAlt.lcoStreet

WHERE 
     (tbStreetAlt.sname='Гагарина')
AND
     ((VAL(tbConsumerAlt.sHouse) mod 2)=1)
;


Это сообщение отредактировал(а) Akina - 7.5.2010, 08:25


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
aldari
Дата 7.5.2010, 08:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 5.3.2007

Репутация: нет
Всего: нет



 Я уже пробывал это, ругается "Несоответствие топов данных в условии отбора".

 Задачку можно будет перефразировать так:
 В таблице tbDigit один столбец digit,  тип - текстовый. В таблицу добавляем 1,2,3,4,5. 
 Какой нужно записать запрос чтобы получить 1,3,5 ?

Код

 Select tbDigit.digit
 FROM tbDigit
 WHERE Val(tbDigit.digit) mod 2 = ??
 

 Что нужно поставить вместо вопросительных знаков?
PM MAIL   Вверх
Akina
Дата 7.5.2010, 08:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 30
Всего: 454



http://forum.vingrad.ru/forum/topic-260944.html

Добавлено через 36 секунд
Цитата(aldari @  7.5.2010,  09:44 Найти цитируемый пост)
Что нужно поставить вместо вопросительных знаков? 

Разуй глазки! скобки надо поставить!


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
aldari
Дата 13.5.2010, 12:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 5.3.2007

Репутация: нет
Всего: нет



  
   Спасибо за помощь.
 Написал в пятницу программу с помощью нее все сделал.
 Причина из-за которой не работал запрос: в поле "номер дома" в нескольких записях были буквы (напр. № дома -- 5а) или было пустое поле.  Странно что Val не отсеял букву.

 спасибо.
PM MAIL   Вверх
Akina
Дата 13.5.2010, 12:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 30
Всего: 454



Цитата(aldari @  13.5.2010,  13:26 Найти цитируемый пост)
Странно что Val не отсеял букву

Этого не может быть.

Цитата(aldari @  13.5.2010,  13:26 Найти цитируемый пост)
или было пустое поле

NZ()


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "MS Access"
Akina
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] и [code=sql][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MS Access | Следующая тема »


 




[ Время генерации скрипта: 0.0478 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.