Форум: "Базы";
Текущий архив: 2004.05.23;
Скачать: [xml.tar.bz2];
ВнизВыборка по полю TDateTime FireBird 1.5 Найти похожие ветки
← →
S@shka © (2004-04-21 16:23) [0]Есть таблица с записями вида...
MyDate Value
----------------------------------------
01.04.2004 11:00:15 1
01.04.2004 12:10:45 2
01.04.2004 13:00:10 2
01.04.2004 14:50:35 3
02.04.2004 01:00:15 1
02.04.2004 02:00:15 1
и т.д вообщем
Надо сделать выборку чтобы подсчитать SUM(Value) за день или месяц
Чтобы результат был....
01.04.2004 8
02.04.2004 2 и. т.д
или
04.2004 10
Как это сделать ??? Можно ли в запросе или надо как-то процедуру писать?
← →
Johnmen © (2004-04-21 16:41) [1]
SELECT
EXTRACT(DAY FROM MyDate)||"."||
EXTRACT(MONTH FROM MyDate)||"."||
EXTRACT(YEAR FROM MyDate) AS MyDateA,
SUM(Value) AS MySum
FROM Table
GROUP BY 1
Кстати, какой диалект ?
← →
S@shka © (2004-04-27 14:06) [2]Диалект 3.
Эта выборка работает но
оператор GROUP By осуществляет сортировку по дням
т.е.
в итоге видим
23.4.2004 15
24.4.2004 10
26.3.2004 1
27.3.2004 2
причем именно в формате d.m.yyyy
а как по дате чтобы было отсортировано?
т.е.
26.3.2004 1
27.3.2004 2
23.4.2004 15
24.4.2004 10
← →
Johnmen © (2004-04-27 14:09) [3]>оператор GROUP By осуществляет сортировку
:)))))) никогда он этого не делал !ORDER BY 2
← →
S@shka © (2004-04-27 14:12) [4]Хе-хе-хе
есно такое не катит :)
← →
Johnmen © (2004-04-27 14:14) [5]>Хе-хе-хе
>есно такое не катит :)
Плохо лыжи смазал...
:)))
← →
Jack128 © (2004-04-27 14:21) [6]
> причем именно в формате d.m.yyyy
SELECT
cast(EXTRACT(MONTH FROM MyDate)||"/"||
EXTRACT(DAY FROM MyDate)||"/"||
EXTRACT(YEAR FROM MyDate) as date) AS MyDateA,
SUM(Value) AS MySum
FROM Table
GROUP BY 1
вот тебе в формате даты, сам решай в каком формате эту дату представлять..
← →
S@shka © (2004-04-27 14:31) [7]А серьезно?
Хорошо. На врал - не сортирует GRoup By может быть (а мож и сортирует :))
Но ...
факт остается фактом мне то нужно отсортированные данные получить.
← →
S@shka © (2004-04-27 14:33) [8]>> Jack128
Большое спасибо
← →
Соловьев © (2004-04-27 14:37) [9]
> S@shka © (27.04.04 14:33) [8]
Такие вещи лучше на клиенте делать.
← →
Johnmen © (2004-04-27 14:39) [10]>факт остается фактом мне то нужно отсортированные данные получить.
Ещё раз. GROUP BY никакого отношения к сортировке не имеет, в отличие от ORDER BY (см.англо-русский словарь :))ORDER BY 1
← →
S@shka © (2004-04-27 15:30) [11]>> Johnmen
хех это то я знаю.
однако факт остается фактом
пример >> Jack128 работает корректно
← →
Johnmen © (2004-04-27 15:40) [12]>S@shka © (27.04.04 15:30) [11]
>пример >> Jack128 работает корректно
Это случайность, обусловленная твоими данными.
Да чем он отличается от [1] ?
Если у тебя 3 диалект, то можно проще
SELECT CAST(MyDate AS DATE) AS MyDateA, SUM(Value) AS MySum
FROM Table
GROUP BY 1
ORDER BY 1
← →
Jack128 © (2004-04-27 15:44) [13]
> Jack128 работает корректно
очень приятно ;-) , но это был пример на твое замечание по поводу представления даты в определенном формате, к сортировке он не имеет никакого отнашения :-))
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.05.23;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.036 c