Topic: Подскажите, что я не правильно делаю в запросе для MySQL
Запрос должен делать выборку между задаваемыми значениями datetime
Замучался искать ошибку
возвращает error near 'select
cast(sum(economy.ttlfrt * periodTime) as decimal(15,2)) from
(...on line 16
+++
variables in date and time picker:
perbeg
perend
table economy:
values:
voynumber, int
begin , datetime
end, datetime
ttlfrt, currency
++++
select
voynumber,
begin,
end,
ROUND ((TIME_TO_SEC(TIMEDIFF(economy.begin, economy.end))/86400),4) as fullvoyTime,
case
when economy.begin < {perbeg} and economy.end > {perend} then TIME_TO_SEC(TIMEDIFF({perbeg}, {perend}))
when economy.begin >= {perbeg} and economy.end <= {perend} then TIME_TO_SEC(TIMEDIFF( economy.begin, economy.end))
when economy.begin < {perbeg} and economy.end <= {perend} then TIME_TO_SEC(TIMEDIFF( {perbeg}, economy.end))
when economy.begin >= {perbeg} and economy.end > {perend} then TIME_TO_SEC(TIMEDIFF( economy.begin, {perend}))
end
as periodTime
from economy
where economy.begin <= {perbeg} and economy.end >= {perbeg} or economy.begin <= {perend} and economy.end >= {perbeg},
select
cast(sum(economy.ttlfrt * periodTime) as decimal(15,2)) from
(
select
voynumber,
ROUND ((TIME_TO_SEC(TIMEDIFF(economy.begin, economy.end))/86400),4) as fullvoyTime,
case
when economy.begin < {perbeg} and economy.end > {perend} then TIME_TO_SEC(TIMEDIFF({perbeg}, {perend}))
when economy.begin >= {perbeg} and economy.end <= {perend} then TIME_TO_SEC(TIMEDIFF( economy.begin, economy.end))
when economy.begin < {perbeg} and economy.end <= {perend} then TIME_TO_SEC(TIMEDIFF( {perbeg}, economy.end))
when economy.begin >= {perbeg} and economy.end > {perend} then TIME_TO_SEC(TIMEDIFF( economy.begin, {perend}))
end as periodTime,
ttlfrt,
ttlfrt / TIME_TO_SEC(TIMEDIFF( economy.begin, economy.end)) as tariff from economy
where economy.begin <= {perbeg} and economy.end >= {perbeg} or economy.begin <= {perend} and economy.end >= {perbeg}) as final