Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.11;
Скачать: CL | DM;

Вниз

Выборка данных за каждый месяци сумирование   Найти похожие ветки 

 
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 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)
?


 
Соловьев ©   (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]

вы не могли бы написать эту самую ХП? буду очень благодарен


 
Соловьев ©   (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). Правда, не знаю, какой эффект будет иметь в ИБ, может есть более прямые функции для даты-времени.


 
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)


 
roottim   (2004-04-09 17:09) [10]

я конечно наверно лох по синтаксису ИБ, да и в оракле только в 9-ке появилис pipeline функции... но накидать примерно код могу.. только не сильно бейте
create pocedure days_of_month(p_month integer, p_year integer)
return (dmonth date)
as
begin
 -- вот это на pl
 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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.033 c
3-1078997841
RavenD
2004-03-11 12:37
2004.04.11
почему теряются данные при запросе?


1-1080200264
Raduga
2004-03-25 10:37
2004.04.11
Синронизация


14-1082037543
gn
2004-04-15 17:59
2004.04.11
господа интресно выслушать мнение.


6-1075700133
WM.DIGGER
2004-02-02 08:35
2004.04.11
Как определить IP шник, "забитый" в свойствах TCP ...


4-1079688851
Desdechado
2004-03-19 12:34
2004.04.11
HBITMAP LoadBitmap(...)