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

Вниз

End of SELECT statement expected, instead found . ??????   Найти похожие ветки 

 
Serge   (2003-12-22 18:25) [0]

При попытке активизировать Query с запросом


select
max(ABR) ABR,
max(COD) COD,
SUM(CUMP) CUMP,
SUM(CUMP_EC_LEI) CUMP_EC_LEI,
SUM(VIND) VIND,
SUM(VIND_EC_LEI) VIND_EC_LEI,
SUM(CUMP_A) CUMP_A,
SUM(CUMP_EC_LEI_A) CUMP_EC_LEI_A,
SUM(VIND_A) VIND_A,
SUM(VIND_EC_LEI_A) VIND_EC_LEI_A,
MAX(prior)
from
(
select m1.ABR ABR,
v1.COD COD,
m1.cump_val CUMP,
m1.cump_lei CUMP_EC_LEI,
m1.vind_val VIND,
m1.vind_lei VIND_EC_LEI,
0 CUMP_A,
0 CUMP_EC_LEI_A,
0 VIND_A,
0 VIND_EC_LEI_A,
v1.prioritate prior
from month m1, valute v1
where (m1.ABR<>"MDL")
AND (m1.ABR=v1.ABR)
AND (EXTRACT(MONTH FROM m1.Data)=:Luna)

union all

select m1.ABR ABR,
v1.COD COD,
0 CUMP,
0 CUMP_EC_LEI,
0 VIND,
0 VIND_EC_LEI,
m1.cump_val CUMP_A,
m1.cump_lei CUMP_EC_LEI_A,
m1.vind_val VIND_A,
m1.vind_lei VIND_EC_LEI_A,
v1.prioritate prior
from month m1, valute v1
where(m1.ABR <> "MDL")
And (m1.ABR = v1.ABR)
And (EXTRACT(MONTH FROM m1.Data) <= :Luna)
)
GROUP BY COD


выскакивает ошибка

End of SELECT statement expected, instead found "." - вообще ничего не понимаю уже.
Подскажите плиз иде ошибка!

П.С. :Luna - целочисленная переменная (номер месяца)


 
Sandman25 ©   (2003-12-22 18:42) [1]

Попробуйте отлаживать в Query Analyzer.
Уберите один из запросов из union all, например.


 
Serge   (2003-12-22 18:49) [2]

Отдельно - оба запроса работают, но вот когда пытаюсь соединить их - шиш с маслом :(,
может чо неправильно написал с PL/SQL-ной замашкой ?


 
Sandman25 ©   (2003-12-22 18:50) [3]

[2] Serge (22.12.03 18:49)

Вы уверены, что select from union поддерживаются?


 
Serge   (2003-12-22 18:55) [4]

Во всяком случае в ихнем ДБИСАМ хэлпе - он поддерживается :)


 
kaif ©   (2003-12-23 00:21) [5]

Может, попытаться GROUP BY COD для начала выкинуть?


 
Serge   (2003-12-23 09:35) [6]

Sorry что вчера не ответил.
GROUP BY COD я никак не могу выкинуть, потому что это противит ожидаемому результату - первый селект возвращает суммы валют проданных за месяц, второй - проданных за год - и они должны быть отсумированны каждая по отдельности - USD, EUR, RUB, UAH itd...


 
Serge   (2003-12-23 09:55) [7]

Покоцав вышеуказанный код
я оставил только

select m1.ABR ABR,
v1.COD COD,
SUM(m1.cump_val) CUMP,
SUM(m1.cump_lei) CUMP_EC_LEI,
SUM(m1.vind_val) VIND,
SUM(m1.vind_lei) VIND_EC_LEI,
v1.prioritate prior
from month m1, valute v1
where (m1.ABR<>"MDL")
AND (m1.ABR=v1.ABR)
AND (EXTRACT(MONTH FROM m1.Data)=:Luna)
GROUP BY COD

union all

select m1.ABR ABR,
v1.COD COD,
SUM(m1.cump_val) CUMP_A,
SUM(m1.cump_lei) CUMP_EC_LEI_A,
SUM(m1.vind_val) VIND_A,
SUM(m1.vind_lei) VIND_EC_LEI_A,
v1.prioritate prior
from month m1, valute v1
where(m1.ABR <> "MDL")
And (m1.ABR = v1.ABR)
And (EXTRACT(MONTH FROM m1.Data) <= :Luna)
GROUP BY COD

и сработало, правда не совсем в той форме в которой я ожидал но все же... В PL/SQL-е такой код проходит на ура но вот здесь ...

Спасибо всем!
Удачи!


 
Johnmen ©   (2003-12-23 10:58) [8]

А если так:

SELECT
MAX(m1.ABR) ABR,
MAX(v1.COD) COD,
SUM(m1.cump_val*K1) CUMP,
SUM(m1.cump_lei*K1) CUMP_EC_LEI,
SUM(m1.vind_val*K1) VIND,
SUM(m1.vind_lei*K1) VIND_EC_LEI,
SUM(m1.cump_val) CUMP_A,
SUM(m1.cump_lei) CUMP_EC_LEI_A,
SUM(m1.vind_val) VIND_A,
SUM(m1.vind_lei) VIND_EC_LEI_A,
MAX(v1.prioritate)
FROM month m1, valute v1
WHERE
(m1.ABR<>"MDL") AND
(m1.ABR=v1.ABR) AND
(EXTRACT(MONTH FROM m1.Data)<=:Luna)
GROUP BY COD


где K1 зависит от того, как в DBISAM реализовано приведение типов (к int).
Если с отбрасыванием дробной части, то
K1=CAST(EXTRACT(MONTH FROM m1.Data)/:Luna AS INTEGER)
Если с округлением, то
K1=CAST((EXTRACT(MONTH FROM m1.Data)/:Luna)-0.5 AS INTEGER)


 
Serge   (2003-12-23 11:37) [9]

To Johnmen ©
Огр-р-р-р-р-р-р-р-р-р-р-р-омное СПАСИБО!!!
Чес. говоря мне бы в жисть такое в голову не пришло.
Все работает отлично!!!
После этого я могу сделать лишь один вывод - мне надо учиться, учиться и еще много раз учиться. :о)

Еще раз спасибо!
Удачи!



Страницы: 1 вся ветка

Текущий архив: 2004.01.20;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.02 c
1-63186
DDA
2004-01-10 12:00
2004.01.20
ComboBox vs Panel


1-63078
Dublicator
2004-01-07 12:36
2004.01.20
Скрытие приложения


14-63314
Ru
2003-12-31 10:37
2004.01.20
---|Ветка была без названия|---


1-63226
KSergey
2004-01-09 13:31
2004.01.20
Назначение обработчиков событий объекту WordApplication


14-63372
Lord Vader
2003-12-28 08:06
2004.01.20
Нужен алгоритм по выч. математике