![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Помогите составить запрос.(я уже туплю)... [D6, FB 1.5]
avgur © (2004-06-04 10:32:00)Есть таблица истории норм списания бензина:
DataNorm Data
GosNum String(10)
Marka String(30)
Norma Float
Rashod Float
Мне необходимо получить данные на любую дату
Например:
DataNorm GosNum Marka Norma Rashod
01/02/02 'АА 0215 АЕ' 'BMW-745' 17.6 20.4
01/07/02 'АА 0215 АЕ' 'BMW-745' 17.6 25.4
14/02/03 'АА 0215 АЕ' 'BMW-745' 16.8 22.4
23/05/04 'АА 0215 АЕ' 'BMW-745' 19.6 23.8
Необходимо получить норму расхода на 29/10/02
должен взять строку:
01/07/02 'АА 0215 АЕ' 'BMW-745' 17.6 25.4
привызка обязательна к марке и номеру автомобиля, т.к у нас есть такая ерунда когда авто продается номер переходит на вновь купленый авто (не всегда но некоторые номера да....)
avgur (2004-06-04 13:38:00) [1]
> Fiend © (04.06.04 13:36) [12]
> утомил, блин!
> в селекте 15 полей
> а в инту указал 8
> И шо ты после этого хочешь?
> он выбирает 15 полей а ты ему предлагаешь запихнуть их в
> 8. Куда он должен остальные деть?
Огромное спасибо за помощь, я уже разобрался...
С меня пиво ;)
Fiend (2004-06-04 13:36:00) [2]утомил, блин!
в селекте 15 полей
а в инту указал 8
И шо ты после этого хочешь?
он выбирает 15 полей а ты ему предлагаешь запихнуть их в 8. Куда он должен остальные деть?
avgur (2004-06-04 13:24:00) [3]SET TERM ^ ;
CREATE PROCEDURE PROC_DATANORM (
IN_ID_GNUMCAR INTEGER,
IN_DATE_FUEL DATE)
RETURNS (
OUT_SUMMER_CITY NUMERIC(5,1),
OUT_SUMMER_CITY_MAN NUMERIC(5,1),
OUT_SUMMER_ROUTE NUMERIC(5,1),
OUT_SUMMER_ROUTE_MAN NUMERIC(5,1),
OUT_WINTER_CITY NUMERIC(5,1),
OUT_WINTER_CITY_MAN NUMERIC(5,1),
OUT_WINTER_ROUTE NUMERIC(5,1),
OUT_WINTER_ROUTE_MAN NUMERIC(5,1))
AS
begin
/* Procedure Text */
for SELECT first 1 ID_FUELMAP, DATE_FUEL, ID_GNUMCAR, TYP_FUEL,
LINEARITY_NORM, MANAGEMENT, PERCENT, SUMMER_CITY,
SUMMER_CITY_MAN, SUMMER_ROUTE, SUMMER_ROUTE_MAN,
WINTER_CITY, WINTER_CITY_MAN, WINTER_ROUTE, WINTER_ROUTE_MAN
FROM FUEL_MAP
where (ID_GNUMCAR = :in_id_gnumcar) and (DATE_FUEL <= :in_date_fuel)
order by DATE_FUEL desc
into out_summer_city, out_summer_city_man,
out_summer_route, out_summer_route_man,
out_winter_city, out_winter_city_man,
out_winter_route, out_winter_route_man
do suspend;
end
^
SET TERM ; ^
количества в списках столбцов и переменных не совпадают.
Ошибка динамического SQL.
код ошибки SQL = -313.
количества в списке полей и списке переменных не соответствуют.
Что еще ему нужно????????????????????????????????
Fiend (2004-06-04 13:13:00) [4]for SELECT first 1 ID_FUELMAP, DATE_FUEL, ID_GNUMCAR, TYP_FUEL,
LINEARITY_NORM, MANAGEMENT, PERCENT, SUMMER_CITY,
SUMMER_CITY_MAN, SUMMER_ROUTE, SUMMER_ROUTE_MAN,
WINTER_CITY, WINTER_CITY_MAN, WINTER_ROUTE, WINTER_ROUTE_MAN
FROM FUEL_MAP
where (ID_GNUMCAR = :in_id_gnumcar) and (DATE_FUEL <= :in_date_fuel)
order by DATE_FUEL desc
into (выходные параметры, извини лень писать)
do suspend;
ессесно входной параметр не может быть одновременно и выходным. Поэтому разберись с именами
avgur (2004-06-04 12:46:00) [5]
> Fiend © (04.06.04 12:19) [8]
> for select ...
> ...
> into ...
> do suspend;
а по подробней, если можно....
Прошу прощения за наглость....
Fiend (2004-06-04 12:19:00) [6]for select ...
...
into ...
do suspend;
avgur (2004-06-04 11:40:00) [7]Прошу прощения одну ошибку нашел
теперь другая..........
CREATE PROCEDURE PROC_DATANORM (
IN_DATE_FUEL DATE,
IN_ID_GNUMCAR INTEGER)
RETURNS (
OUT_SUMMER_CITY NUMERIC(5,1),
OUT_SUMMER_CITY_MAN NUMERIC(5,1),
OUT_SUMMER_ROUTE NUMERIC(5,1),
OUT_SUMMER_ROUTE_MAN NUMERIC(5,1),
OUT_WINTER_CITY NUMERIC(5,1),
OUT_WINTER_CITY_MAN NUMERIC(5,1),
OUT_WINTER_ROUTE NUMERIC(5,1),
OUT_WINTER_ROUTE_MAN NUMERIC(5,1))
AS
begin
/* Procedure Text */
SELECT first 1 ID_FUELMAP, DATE_FUEL, ID_GNUMCAR, TYP_FUEL,
LINEARITY_NORM, MANAGEMENT, PERCENT, SUMMER_CITY,
SUMMER_CITY_MAN, SUMMER_ROUTE, SUMMER_ROUTE_MAN,
WINTER_CITY, WINTER_CITY_MAN, WINTER_ROUTE, WINTER_ROUTE_MAN
FROM FUEL_MAP
where (ID_GNUMCAR = :in_id_gnumcar) and (DATE_FUEL <= :in_date_fuel)
order by DATE_FUEL desc
end
avgur (2004-06-04 11:30:00) [8]Как запрос сработало но я попытался создать процедуру которая вернулабы данные а при компиляции выдает ошибку:
Parsing error!
Текст проц:
CREATE PROCEDURE PROC_DATANORM (
IN_DATE_FUEL DATE,
IN_ID_GNUMCAR INTEGER)
RETURNS (
OUT_SUMMER_CITY NUMERIC(5,1),
OUT_SUMMER_CITY_MAN NUMERIC(5,1),
OUT_SUMMER_ROUTE NUMERIC(5,1),
OUT_SUMMER_ROUTE_MAN NUMERIC(5,1),
OUT_WINTER_CITY NUMERIC(5,1),
OUT_WINTER_CITY_MAN NUMERIC(5,1),
OUT_WINTER_ROUTE NUMERIC(5,1),
OUT_WINTER_ROUTE_MAN NUMERIC(5,1))
AS
begin
/* Procedure Text */
SELECT first 1 ID_FUELMAP, DATE_FUEL, ID_GNUMCAR, TYP_FUEL,
LINEARITY_NORM, MANAGEMENT, PERCENT, SUMMER_CITY,
SUMMER_CITY_MAN, SUMMER_ROUTE, SUMMER_ROUTE_MAN,
WINTER_CITY, WINTER_CITY_MAN, WINTER_ROUTE, WINTER_ROUTE_MAN
FROM FUEL_MAP
where (ID_GNUMCAR = :in_id_gnumcar) and (DATE_FUEL <= :in_date_fuel) desc(-ОШИБКА!!!)
end
где я ошибся??? если вообще правильно сделал??????????
avgur (2004-06-04 10:56:00) [9]спасибо!!!! сработало....
Fiend (2004-06-04 10:49:00) [10]Комедия блин!!!
select first 1 * from Table
where Marka = :Marka and GosNum = :GosNum and DataNorm <= :DataNorm
order by DataNorm desc
avgur (2004-06-04 10:48:00) [11]
> Fiend © (04.06.04 10:44) [1]
> ты что книжек не читал по СКЛ???
раньше и семейством IB и FB не сталкивался, это первая попытка
с SQL тоже начал только недавно
avgur (2004-06-04 10:45:00) [12]мало по этому и проблемс
Fiend (2004-06-04 10:44:00) [13]ты что книжек не читал по СКЛ???