Форум: "Базы";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];
ВнизВыборка данных за каждый месяци сумирование Найти похожие ветки
← →
Denis_Visma (2004-04-09 14:48) [0]Уважаемые! Как написать запрос, котороый бы покаждому дню месяца сумировал одно поле....если например за какой то день нее записей, то все равно он отображался в выборке спасибо...
select STAT_DAY, // поле по которому надо сделать ограничение на дату
SUM(SELF_MARK)
from statday
← →
Denis_Visma (2004-04-09 14:48) [0]Уважаемые! Как написать запрос, котороый бы покаждому дню месяца сумировал одно поле....если например за какой то день нее записей, то все равно он отображался в выборке спасибо...
select STAT_DAY, // поле по которому надо сделать ограничение на дату
SUM(SELF_MARK)
from statday
← →
Карелин Артем © (2004-04-09 14:54) [1]Пиши хранимую процедуру, в ней цикл по перечислению месяцев. Внутри цикла делай SUM(SELF_MARK) и все.
← →
Карелин Артем © (2004-04-09 14:54) [1]Пиши хранимую процедуру, в ней цикл по перечислению месяцев. Внутри цикла делай SUM(SELF_MARK) и все.
← →
Соловьев © (2004-04-09 15:00) [2]
> покаждому дню месяца сумировал одно поле....
select SUM(SELF_MARK)
from statday
where stat_day=your_day
← →
Соловьев © (2004-04-09 15:00) [2]
> покаждому дню месяца сумировал одно поле....
select SUM(SELF_MARK)
from statday
where stat_day=your_day
← →
Nikolay M. © (2004-04-09 15:01) [3]В ИБ есть функции, извлекающие год и месяц?
Подозреваю, что есть. Попробуй что-то вроде
SELECT sum(1), ExtractYear(date_field) || ExtractMonth(date_field)
FROM table_name
GROUP BY ExtractYear(date_field) || ExtractMonth(date_field)
?
← →
Nikolay M. © (2004-04-09 15:01) [3]В ИБ есть функции, извлекающие год и месяц?
Подозреваю, что есть. Попробуй что-то вроде
SELECT sum(1), ExtractYear(date_field) || ExtractMonth(date_field)
FROM table_name
GROUP BY ExtractYear(date_field) || ExtractMonth(date_field)
?
← →
Соловьев © (2004-04-09 15:05) [4]
> Nikolay M. © (09.04.04 15:01) [3]
> В ИБ есть функции, извлекающие год и месяц?
есть extract(year from field )
extract(month from field )
extract(day from field )
Только я как понял у автора поста - день храниться.
← →
Соловьев © (2004-04-09 15:05) [4]
> Nikolay M. © (09.04.04 15:01) [3]
> В ИБ есть функции, извлекающие год и месяц?
есть extract(year from field )
extract(month from field )
extract(day from field )
Только я как понял у автора поста - день храниться.
← →
Denis_Visma (2004-04-09 15:06) [5]вы не могли бы написать эту самую ХП? буду очень благодарен
← →
Denis_Visma (2004-04-09 15:06) [5]вы не могли бы написать эту самую ХП? буду очень благодарен
← →
Соловьев © (2004-04-09 15:11) [6]
> Denis_Visma (09.04.04 15:06) [5]
> вы не могли бы написать эту самую ХП? буду очень благодарен
скоко у.е.? :)
Если серьезно, то ты же программист - пора и научится. Используй IBExpert(www.ibexpert.com - для нашего брата бесплатен) Там удобно писать ХП.
← →
Соловьев © (2004-04-09 15:11) [6]
> Denis_Visma (09.04.04 15:06) [5]
> вы не могли бы написать эту самую ХП? буду очень благодарен
скоко у.е.? :)
Если серьезно, то ты же программист - пора и научится. Используй IBExpert(www.ibexpert.com - для нашего брата бесплатен) Там удобно писать ХП.
← →
Nikolay M. © (2004-04-09 15:32) [7]
> Соловьев © (09.04.04 15:05) [4]
> Только я как понял у автора поста - день храниться.
А, дошло. У него дата-время, а нужна группировка только по дате?
Немного доработаем:
SELECT sum(1), Extract(year from date_field) || Extract(month from date_field) || Extract(day from date_field)
FROM table_name
GROUP BY Extract(year from date_field) || Extract(month from date_field) || Extract(day from date_field)
Или вместо этого нагромождения Extract-ов сделать CAST(date_field AS date). Правда, не знаю, какой эффект будет иметь в ИБ, может есть более прямые функции для даты-времени.
← →
Nikolay M. © (2004-04-09 15:32) [7]
> Соловьев © (09.04.04 15:05) [4]
> Только я как понял у автора поста - день храниться.
А, дошло. У него дата-время, а нужна группировка только по дате?
Немного доработаем:
SELECT sum(1), Extract(year from date_field) || Extract(month from date_field) || Extract(day from date_field)
FROM table_name
GROUP BY Extract(year from date_field) || Extract(month from date_field) || Extract(day from date_field)
Или вместо этого нагромождения Extract-ов сделать CAST(date_field AS date). Правда, не знаю, какой эффект будет иметь в ИБ, может есть более прямые функции для даты-времени.
← →
Johnmen © (2004-04-09 15:58) [8]Не, ребята, с IB5 много не наработаешь...:)
>Nikolay M. © (09.04.04 15:32) [7]
А так можно наработать разве что с FB1.5
:)
← →
Johnmen © (2004-04-09 15:58) [8]Не, ребята, с IB5 много не наработаешь...:)
>Nikolay M. © (09.04.04 15:32) [7]
А так можно наработать разве что с FB1.5
:)
← →
Nikolay M. © (2004-04-09 16:05) [9]
> Johnmen © (09.04.04 15:58) [8]
Ну, я же и не претендую. Я с ИБ совсем немного работал и то давно. Главное: ход мысли передать :)
В MySQL, где формат даты-времени был, в основном "2004-09-04 16:04:00" помогал банальный кастинг в строку и Trim правых символов:
GROUP BY left(date_time, 10)
← →
Nikolay M. © (2004-04-09 16:05) [9]
> Johnmen © (09.04.04 15:58) [8]
Ну, я же и не претендую. Я с ИБ совсем немного работал и то давно. Главное: ход мысли передать :)
В MySQL, где формат даты-времени был, в основном "2004-09-04 16:04:00" помогал банальный кастинг в строку и Trim правых символов:
GROUP BY left(date_time, 10)
← →
roottim (2004-04-09 17:09) [10]я конечно наверно лох по синтаксису ИБ, да и в оракле только в 9-ке появилис pipeline функции... но накидать примерно код могу.. только не сильно бейте
create pocedure days_of_month(p_month integer, p_year integer)
-- вот это на pl
return (dmonth date)
as
begin
for i in 1..lastday(to_date(p_month||"."||p_year, "mm.yyyy"))
loop
dmonth := to_date(i||"."||p_month||"."||p_year, "dd.mm.yyyy");
-- а это на isql
suspend;
-- и это на pl
end loop;end
звиняйте , но что смог вспомнить...
а затем соединямselect ... from ttt, days_of_month where dmonth = ttt.dayofmonth
← →
roottim (2004-04-09 17:09) [10]я конечно наверно лох по синтаксису ИБ, да и в оракле только в 9-ке появилис pipeline функции... но накидать примерно код могу.. только не сильно бейте
create pocedure days_of_month(p_month integer, p_year integer)
-- вот это на pl
return (dmonth date)
as
begin
for i in 1..lastday(to_date(p_month||"."||p_year, "mm.yyyy"))
loop
dmonth := to_date(i||"."||p_month||"."||p_year, "dd.mm.yyyy");
-- а это на isql
suspend;
-- и это на pl
end loop;end
звиняйте , но что смог вспомнить...
а затем соединямselect ... from ttt, days_of_month where dmonth = ttt.dayofmonth
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.033 c