![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Выборка по полю TDateTime FireBird 1.5 [D6, FireBird 1.5]
S@shka © (2004-04-21 16:23:00)Есть таблица с записями вида...
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
Как это сделать ??? Можно ли в запросе или надо как-то процедуру писать?
Jack128 (2004-04-27 15:44:00) [1]
> Jack128 работает корректно
очень приятно ;-) , но это был пример на твое замечание по поводу представления даты в определенном формате, к сортировке он не имеет никакого отнашения :-))
Johnmen (2004-04-27 15:40:00) [2]>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
S@shka (2004-04-27 15:30:00) [3]>> Johnmen
хех это то я знаю.
однако факт остается фактом
пример >> Jack128 работает корректно
Johnmen (2004-04-27 14:39:00) [4]>факт остается фактом мне то нужно отсортированные данные получить.
Ещё раз. GROUP BY никакого отношения к сортировке не имеет, в отличие от ORDER BY (см.англо-русский словарь :))
ORDER BY 1
Соловьев (2004-04-27 14:37:00) [5]
> S@shka © (27.04.04 14:33) [8]
Такие вещи лучше на клиенте делать.
S@shka (2004-04-27 14:33:00) [6]>> Jack128
Большое спасибо
S@shka (2004-04-27 14:31:00) [7]А серьезно?
Хорошо. На врал - не сортирует GRoup By может быть (а мож и сортирует :))
Но ...
факт остается фактом мне то нужно отсортированные данные получить.
Jack128 (2004-04-27 14:21:00) [8]
> причем именно в формате 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
вот тебе в формате даты, сам решай в каком формате эту дату представлять..
Johnmen (2004-04-27 14:14:00) [9]>Хе-хе-хе
>есно такое не катит :)
Плохо лыжи смазал...
:)))
S@shka (2004-04-27 14:12:00) [10]Хе-хе-хе
есно такое не катит :)
Johnmen (2004-04-27 14:09:00) [11]>оператор GROUP By осуществляет сортировку
:)))))) никогда он этого не делал !
ORDER BY 2
S@shka (2004-04-27 14:06:00) [12]Диалект 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-21 16:41:00) [13]
SELECT
EXTRACT(DAY FROM MyDate)||'.'||
EXTRACT(MONTH FROM MyDate)||'.'||
EXTRACT(YEAR FROM MyDate) AS MyDateA,
SUM(Value) AS MySum
FROM Table
GROUP BY 1
Кстати, какой диалект ?