Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.07.04;
Скачать: CL | DM;

Вниз

Помогите составить запрос.(я уже туплю)...   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.03 c
6-1084265625
empty
2004-05-11 12:53
2004.07.04
Асинхронная передача данных в Delphi по сети. Поможите кто можите


4-1081365522
cerber1
2004-04-07 23:18
2004.07.04
Поиск каретки в системе


1-1087330567
Костик
2004-06-16 00:16
2004.07.04
Обращении к функции CopyFile в WinXp


3-1086330720
avgur
2004-06-04 10:32
2004.07.04
Помогите составить запрос.(я уже туплю)...


4-1085392456
Amour
2004-05-24 13:54
2004.07.04
Доступ к каталогу