С чего это вы взяли? А по поводу временных ограничений на споже то, видимо, мало вы там что решали. Есть задачи, на которых в принципе не сможете пройти временные лимиты на интерпретируемых языках.
Ну с sql*plus'а я бы точно не начал(вполне качественный и без замут). Я б начал про установку oracle portal,forms,reports на веблоджик… Вот уж где кривой инсталлер. До сих пор парюсь — завести не могу.
Как бэ логично… кому нужна СУБД? В первую очередь клиентам, во-вторую очередь — девелоперам, а дба нужны уже самой субд. Клиенты с sql*plus работать не будут — для них есть всякие формсы, репортсы, црмы и прочие плюшки. Девелоперы будут разрабатывать. А дба — придется работать с тем, что есть.
А вы когда-нибудь внимательно читали? Если бы прочли и подумали, то этого комментария не писали бы. Не нравится эта таблица — выбирайте тогда, например, information_schema.global_variables, не нравится эта — возьмите любую другую более подходящую.
set @rownumber:=null;
select DATE_FORMAT(t.fday,'%Y.%m') as mon,count(e.id)
from
(
select
@rownumber:=if(@rownumber is null,0,@rownumber+1) n,
date_add('2010-01-01', interval @rownumber month) fday,
date_add('2010-01-01', interval @rownumber+1 month) lday
from information_schema.columns t
limit 12
) t
left join events e
on e.`start_date`<t.lday and e.end_date>=t.fday
group by t.fday
Зачем городить огород? это тоже самое что и с кейсом, но добавляя подзапрос и лишние битовые операции. При том что и так есть даты начала и конца, незачем генерировать еще и массив битов для каждого месяца.
Можно и count, я показывал для наглядности и читабельности, чтобы можно было понять остальные возможности — легко добавить вариации и условия.
А так можно и просто count(if(… and ...,1,null))
Ксения, ну к чему спорить? :) я же показал пример выше:
select sysdate(),sysdate()-1 from dual
Выполните-посмотрите. Посмотрите документацию к datetime типу.
И свой код посмотрите:
DATE_FORMAT(t.end_date-1, '%m')
а не
DATE_FORMAT(t.end_date, '%m')-1
как, наверное, хотели…
А я из-за них на jdeveloper перешел. Все равно netbeans не скоро, наверное, возьмет все из jdeveloper'a.
А так можно и просто count(if(… and ...,1,null))
select sysdate(),sysdate()-1 from dual
Выполните-посмотрите. Посмотрите документацию к datetime типу.
И свой код посмотрите:
DATE_FORMAT(t.end_date-1, '%m')
а не
DATE_FORMAT(t.end_date, '%m')-1
как, наверное, хотели…
select sysdate(),sysdate()-1 from dual
Именно ифами/кейсами и можно в одну группу поместить. о чем собственно и топик…