Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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.49 MB
Время: 0.033 c
1-1087255908
Dmitry
2004-06-15 03:31
2004.07.04
Необходимо сделать объект прозрачным для событий.


6-1083959776
Prankster
2004-05-07 23:56
2004.07.04
post


14-1087294951
default
2004-06-15 14:22
2004.07.04
Ещё задачка


8-1082041971
Pa5ha
2004-04-15 19:12
2004.07.04
ColorKey&amp;Direct3D


3-1086759671
Сергей
2004-06-09 09:41
2004.07.04
Таблица не открывается сообщение - invalid index descriptor





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский