Поиск:

Ответ в темуСоздание новой темы Создание опроса
> помогите с SQL -запросом, SQL-запрос 
:(
    Опции темы
Veniamin
Дата 15.5.2008, 23:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



база в Access, приложение на Delphi соединено через ADO. Хочу сделать запрос на вывод всех записей из главной таблицы в которых кабинеты следующие 211, 213. Пишу следующее:
Код

DM.QRep1.Active:=false;
      DM.QRep1.SQL.Clear;
      DM.QRep1.SQL.Add('SELECT * FROM [главная таблица]');
      DM.QRep1.SQL.Add('WHERE кабинет IN (211,213)');
      DM.QRep1.Active:=true;
      FindResultForm.ShowModal;


При выполнении запроса выводится следующее: Несоответствие типов данных в выражении условия отбора. В чём причина? 

А если писать так: 
Код

DM.QRep1.SQL.Add('WHERE кабинет IN ('211','213')');

то выводится след.ошибка : Missing operator or semicolon

В главной таблице все поля имеют тип текстовый, кроме номера, он имеет тип - счётчик.

Проверил в Query Analyzer-е SQL-Server 2000 подобный запрос
Код

SELECT * FROM Main WHERE product IN ('хлеб', 'пиво');

 - всё работает, выводит все поля с заданным условием, а с Access что не так?


Это сообщение отредактировал(а) Veniamin - 15.5.2008, 23:27
PM MAIL   Вверх
Deniz
Дата 16.5.2008, 06:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1251
Регистрация: 16.10.2004
Где: Новый Уренгой

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



Dimich, DimW, а почему не попробовать вместо:
Код
select ... where ...
  and (tblostatok.idoperator, tbldate.fldate) in
(
select tblostatok.idoperator, max (tbldate.fldate) fldate
from tbldate, tblostatok
where tbldate.dateid = tblostatok.dateid
  and tbldate.fldate <= :p_date
group by tblostatok.idoperator
)

Код
select ... where ...
  and tbldate.fldate in
(
select max (tbldate.fldate) fldate
from tbldate, tblostatok  ost2
where tbldate.dateid = tblostatok.dateid
  and tbldate.fldate <= :p_date
  and ost2.idoperator = tblostatok.idoperator
)


Добавлено через 1 минуту и 46 секунд
Veniamin, создай новое сообщение.


--------------------
"Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с)
PM ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

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

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


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


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

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


 




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


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

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