Форум: "Базы";
Текущий архив: 2004.01.20;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.011 c