![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
End of SELECT statement expected, instead found . ?????? [D6, D7, DBISAM]
Serge © (2003-12-22 18:25:00)
При попытке активизировать 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 - целочисленная переменная (номер месяца)
Serge (2003-12-23 11:37:00) [1]
To Johnmen ©
Огр-р-р-р-р-р-р-р-р-р-р-р-омное СПАСИБО!!!
Чес. говоря мне бы в жисть такое в голову не пришло.
Все работает отлично!!!
После этого я могу сделать лишь один вывод - мне надо учиться, учиться и еще много раз учиться. :о)
Еще раз спасибо!
Удачи!
Johnmen (2003-12-23 10:58:00) [2]
А если так:
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 09:55:00) [3]
Покоцав вышеуказанный код
я оставил только
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-е такой код проходит на ура но вот здесь ...
Спасибо всем!
Удачи!
Serge (2003-12-23 09:35:00) [4]
Sorry что вчера не ответил.
GROUP BY COD я никак не могу выкинуть, потому что это противит ожидаемому результату - первый селект возвращает суммы валют проданных за месяц, второй - проданных за год - и они должны быть отсумированны каждая по отдельности - USD, EUR, RUB, UAH itd...
kaif (2003-12-23 00:21:00) [5]
Может, попытаться GROUP BY COD для начала выкинуть?
Serge (2003-12-22 18:55:00) [6]
Во всяком случае в ихнем ДБИСАМ хэлпе - он поддерживается :)
Sandman25 (2003-12-22 18:50:00) [7]
[2] Serge (22.12.03 18:49)
Вы уверены, что select from union поддерживаются?
Serge (2003-12-22 18:49:00) [8]
Отдельно - оба запроса работают, но вот когда пытаюсь соединить их - шиш с маслом :(,
может чо неправильно написал с PL/SQL-ной замашкой ?
Sandman25 (2003-12-22 18:42:00) [9]
Попробуйте отлаживать в Query Analyzer.
Уберите один из запросов из union all, например.