Форум: "Базы";
Текущий архив: 2002.07.25;
Скачать: [xml.tar.bz2];
ВнизSQL Запрос с группировкой по месяцам Найти похожие ветки
← →
Pro (2002-07-04 07:26) [0]Суть проблемы - есть табличка с полями - дата,сумма,
(вообще больше но не в них дело)
так вот - некоторые дни заносится запись в табличку с какой то суммой. Так вот - нужно соорудить отчетик - ежемесячное накопление сумм.
типа
01.02 * сумма за январь
02.02 * сумма за февраль
и т.д.
Господа мастера - подскажите плиз
← →
ПИТОН (2002-07-04 07:48) [1]Что-то типа
Select month(date), year(date), sum(summa)
Group by month(date), year(date)
← →
perov (2002-07-04 08:08) [2]в оракле это делается так
select to_char(incomedate, "mm.yyyy"), sum(summa)
from payments_tab
group by to_char(incomedate, "mm.yyyy")
а насчет ФоксПро и БДЕ не уверен, что там есть функции для выделения компонентов даты
← →
Pro (2002-07-04 08:17) [3]to ПИТОН
Спасибо!
почти так как я и хотел
токо вот месяца он сортирует так - 1,11,12,2
я его понимаю конечно :) - но мне бы в порядке как они есть в году. есть мысли ?
и еще - если мне это дело в отчет пихать - мне надо еще итоги по годам и за весь период. Подскажите - а то я репорты еще ниразу не делал.
← →
ПИТОН (2002-07-04 08:50) [4]Можно и так
Select month(date)+year(date)*100, sum(summa)
Group by month(date)+year(date)*100
← →
Pro (2002-07-04 09:00) [5]Извиняюсь конечно, но где то я откровенно туплю
чисто в Fox Pro 2.6 все это дело работает, а вот BDE ....
создал табличку в SQL Explorere с дельфями который идет (dBase, FoxPro) с полем дата
так он вообще не понимает mount и year
(элементарно select year(dt) from table не пашет )
и вообще где можно спецификацию SQL скачать под конкретный тип БД
чтоб там полный список хитрых функции был (типа year)
← →
Johnmen (2002-07-04 09:09) [6]Да нет там таких ф-ий !
Придется тебе отдельно хранить № месяца, или, другой вариант, сильно извращаться в клиентской проге...
>ПИТОН (04.07.02 08:50)
>Можно и так
>Select month(date)+year(date)*100, sum(summa)
>Group by month(date)+year(date)*100
А можно поинтересоваться, в какой СУБД это работает..? :)
← →
Pro (2002-07-04 09:21) [7]>Johmen
это работает в FoxPro 2.6 for Windows
т.к. там он запрос обрабатывает вместе с функциями самого языка
>ПИТОН
выводит 012001 142001
а нормальном формате - типа 01.2001 ?
month(date)+"."+year(date)*100 - не работает
← →
ПИТОН (2002-07-04 09:34) [8]Johnmen © (04.07.02 09:09)
А можно поинтересоваться, в какой СУБД это работает..? :)
Access 2000
Pro © (04.07.02 09:21)
При выводе делай :
Str(Int(DT/100000))+"."+Str(MOD(DT,10000))
← →
Johnmen (2002-07-04 09:39) [9]Я что-то не уловил, тебе отчетик нужен в Дельфях или в FoxPro 2.6 for Windows ?
Ты уж определись...
← →
Johnmen (2002-07-04 09:41) [10]>ПИТОН (04.07.02 09:34)
А в вопросе по-моему нет ни слова про Access 2000 ...
← →
Pro (2002-07-04 10:10) [11]Всем спасибо!
>Johmen
просто я делаю и там и там
сначала в Fox потом переделывать буду на Delphi
и видимо на дельфи буду под Access2000 писать,
а то уж сильно я испугался про заморочки с хранением месяца или извратом в клиенте
>ПИТОН
special thank !
← →
ПИТОН (2002-07-04 10:22) [12]Johnmen © (04.07.02 09:41)
>ПИТОН (04.07.02 09:34)
А в вопросе по-моему нет ни слова про Access 2000 ...
Я просто привел пример
← →
Johnmen (2002-07-04 10:26) [13]Смею утверждать, что конструкции типа
....
Group by month(date)+year(date)*100
...
не будут работать нигде, кроме как в тех средах, которые предназначены для конкретной СУБД.
← →
Ина (2002-07-04 12:01) [14]вот запрос к foxpro 2.6
у меня четко работае, в фоксе вообще-то много функций
для работ с датами! Если еще что-нибудь надо - спрашивай.
На счет особенностей SQL для разных сред - это только help-е конкретной среды(разве у тебя нет?)
select month(date) as mon, year(date) as yr, sum(summa);
from table1.dbf ;
group by yr,mon
получаем
1 2001
2 2001
...
12 2001
1 2002
...
А какую базу планируешь далее использовать, для Дельфи?
Лучше не плодить базы, а сразу проектировать навсегда - как данные то будешь перекачивать?
← →
kaif (2002-07-04 12:12) [15]Могу дать дельный совет. Когда я работал в Interbase 5.6 и там еще не было функций выделения YEAR, MONTH, я решил эту задачу просто - соорудил дополнительную таблицу-календарь типа:
Calendar(date,year,month,day,week,week_day),
в которую в начале каждого года программно заносил записи на все даты.
Потом делал объединение этой таблицы с любой другой таблицей- накопителем и группировал суммы как угодно (хоть по дням недели).
← →
Pro (2002-07-04 12:47) [16]> Ина
База уже есть - и написана очень криво на FoxPro надо срочно к ней сделать репорт (чем я щас и занимаюсь)
а переписываю я ее потихоньку под IB и данные рано или поздно перекачивать придется (и вопрос с группировкой поднимется и там)
вот я и слушаю всех во все уши - всё пригодится
а как ты написала - не получаем , там с сортировкой проблемы (1,11,12,2) - но тут мне ПИТОН подсказал
>Kaif совет воспринят, оценен и записан
ВСЕ думаю уже можно вопрос закрыть - дальше я сам домучаю.
всем спасибо.
понравилось мне с Вами - так что не прощаюсь
до скорых встреч мастера !
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2002.07.25;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.005 c