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

Вниз

Выборка по полю 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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.077 c
1-1083908296
Sla
2004-05-07 09:38
2004.05.23
Режим доступа к ТЕКСТОВОМУ файлу


7-1080714655
c13prog
2004-03-31 10:30
2004.05.23
Как определить название диска в CD-ROM?


14-1083656290
GanibalLector
2004-05-04 11:38
2004.05.23
ДОС версии ниже 6.22.


1-1084075854
glGLU
2004-05-09 08:10
2004.05.23
ListBox & Message


1-1083306393
stone777
2004-04-30 10:26
2004.05.23
Установка Delphi