![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
где ошибка в запросе?
xyz © (2009-10-15 14:05:00)Есть sql-запрос:
select [Типы товара].[Тип товара], Товар.Наименование, Имущество.Количество
from [Типы товара], Товар, Имущество m1
where (m1.[код товара]=Товар.[код товара]) and
([Типы товара].[код типа товара]=Товар.[Код типа товара]) and
(m1.[дата/время]=(select min(m2.[дата/время]) from Имущество m2
where (m1.[№ склада]=m2.[№ склада]) and (m1.[код товара]=m2.[код товара])
and (m1.[дата/время]=m2.[дата/время])
and (m2.[дата/время]>:dat)))
В таблице "Имущество" ключевое поле составное, поэтому так много сравнений. От него требуется вывод количества товара, кот. было на складе на начало даты, записанной в параметре dat компонента adoquery. (Предполагается, что в таблице существует запись на эту дату). Я пробовал этот запрос в разных вариациях, но везде получал ошибку:
"отсутствует значение для одного или нескольких требуемых параметров". Сам этот параметр я не забываю установить таким образом:
adoquery1.Parameters.ParamByName('dat').Value:=datetimepicker1.DateTime;
Какой еще параметр ему нужен?
Сами таблицы такие:
"Имущество" с полями:
№ склада (ключевое)
код инвентаря (кл.)
количество
дата/время (кл.)
"Товар" с полями:
Наименование
Код типа товара
Код товара (кл.)
"Типы товара" с полями:
Тип товара
Код типа товара (кл.)
БД - Access
Медвежонок Пятачок (2009-10-15 14:56:00) [1]ну так dat то участвует в условии подзапроса а не в основном условии
xyz (2009-10-15 14:51:00) [2]
> может так?
> select [Типы товара].[Тип товара], Товар.Наименование, m1.
> Количество
> from [Типы товара], Товар, Имущество m1
Работает, но неправильно. Выдает все записи, которые >dat, независимо минимум это или нет.
Медвежонок Пятачок (2009-10-15 14:41:00) [3]Это ошибка в имени таблицы или очередное напоминание всем эстетам, дающим русские имена объектам бд.
Sergey13 (2009-10-15 14:40:00) [4]> [0] xyz (15.10.09 14:05)
> select [Типы товара].[Тип товара], Товар.Наименование, Имущество.Количество
> from [Типы товара], Товар, Имущество m1
может так?
select [Типы товара].[Тип товара], Товар.Наименование, m1.Количество
from [Типы товара], Товар, Имущество m1
xyz (2009-10-15 14:36:00) [5]Вообще, если добавить в select любое другое поле из таблицы "Имущество", то и оно тоже делается параметром. Глюк?
Медвежонок Пятачок (2009-10-15 14:34:00) [6]оказалось, что Имущество.Количество - это тоже параметр
надо в это верить
xyz (2009-10-15 14:28:00) [7]Я его выполнил в access'е, оказалось, что Имущество.Количество - это тоже параметр (с его точки зрения). Но мне-то его нужно как данность вывести
sniknik (2009-10-15 14:15:00) [8]> где ошибка в запросе?
знаки препинания неверно расставил... надо так -
где ошибка? в запросе! :)
> БД - Access
> "отсутствует значение для одного или нескольких требуемых параметров".
все что jet не определяет, не находит в полях, он считает за параметр. в самом access-е (программе) по такой ошибке всплывает окно для вводе значения.
выполни для проверки запрос там.
и кстати
> :dat)
напиши с пробелом, так :dat ), были вопросы с подобным, у кого то не определялся последний параметр если после него что то стоит впритык. (хотя это вряд ли)