Форум: "Базы";
Текущий архив: 2004.07.04;
Скачать: [xml.tar.bz2];
ВнизПомогите составить запрос.(я уже туплю)... Найти похожие ветки
← →
avgur © (2004-06-04 10:32) [0]Есть таблица истории норм списания бензина:
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
привызка обязательна к марке и номеру автомобиля, т.к у нас есть такая ерунда когда авто продается номер переходит на вновь купленый авто (не всегда но некоторые номера да....)
← →
Fiend © (2004-06-04 10:44) [1]ты что книжек не читал по СКЛ???
← →
avgur © (2004-06-04 10:45) [2]мало по этому и проблемс
← →
avgur © (2004-06-04 10:48) [3]
> Fiend © (04.06.04 10:44) [1]
> ты что книжек не читал по СКЛ???
раньше и семейством IB и FB не сталкивался, это первая попытка
с SQL тоже начал только недавно
← →
Fiend © (2004-06-04 10:49) [4]Комедия блин!!!
select first 1 * from Table
where Marka = :Marka and GosNum = :GosNum and DataNorm <= :DataNorm
order by DataNorm desc
← →
avgur © (2004-06-04 10:56) [5]спасибо!!!! сработало....
← →
avgur © (2004-06-04 11:30) [6]Как запрос сработало но я попытался создать процедуру которая вернулабы данные а при компиляции выдает ошибку:
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 11:40) [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
← →
Fiend © (2004-06-04 12:19) [8]for select ...
...
into ...
do suspend;
← →
avgur © (2004-06-04 12:46) [9]
> Fiend © (04.06.04 12:19) [8]
> for select ...
> ...
> into ...
> do suspend;
а по подробней, если можно....
Прошу прощения за наглость....
← →
Fiend © (2004-06-04 13:13) [10]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 13:24) [11]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:36) [12]утомил, блин!
в селекте 15 полей
а в инту указал 8
И шо ты после этого хочешь?
он выбирает 15 полей а ты ему предлагаешь запихнуть их в 8. Куда он должен остальные деть?
← →
avgur © (2004-06-04 13:38) [13]
> Fiend © (04.06.04 13:36) [12]
> утомил, блин!
> в селекте 15 полей
> а в инту указал 8
> И шо ты после этого хочешь?
> он выбирает 15 полей а ты ему предлагаешь запихнуть их в
> 8. Куда он должен остальные деть?
Огромное спасибо за помощь, я уже разобрался...
С меня пиво ;)
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.07.04;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.085 c