Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Помогите составить запрос.(я уже туплю)... [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]

ты что книжек не читал по СКЛ???


Наверх

Титульная страница Поиск, карта сайта Написать письмо