powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Вывод записей....
4 сообщений из 4, страница 1 из 1
Вывод записей....
    #36495849
v0ffka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток. Нужна помощь с запросом. Вопрос в следующем. есть таблица tb_amount c 6-ю столбцами
1 - id_amount - автоинкремент целое
2 - doctype - (тип документа) целое
3 - docid - (id документа) целое
4 - amount - (cумма) decimal
5 - moneyday - (день платежки) date
6 - moneyday_time - timestamp.
Для большей наглядности, нек. набор данных

id_amount..doctype.....docid..............amount..................moneyday...........................moneytime
1..............78..............2832..............500.00..............2010-01-12.............2010-12-13 20.33.12.00000
2..............78..............2832..............854.00..............2010-01-12.............2010-12-13 20.39.12.00000
3..............78..............2832..............12.000..............2010-01-12.............2010-12-13 20.48.45.00000
4..............78..............2832..............100.00..............2010-01-12.............2010-12-13 22.56.00.00000
5..............78..............2832..............124.98..............2010-01-12.............2010-12-13 22.59.00.00000
..............................................................................................................................................
34............78..............3452..............123.00..............2010-01-12.............2010-12-13 23.12.12.00000
35............78..............3452..............132.00..............2010-01-12.............2010-12-13 23.15.12.00000
ну и т.д.
вопрос в следующем, как мне отбирать группы записей в течении одного часа т.е. (каждая группа)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
select .... from tb_amount as tb
where tb.doctype in ( 78 ) // В данном примере только  78  но есть еще другие типы
and tb.moneyday = '2010-01-12'
and tb.docid in (select tb2.docid from tb_amount as tb2 where tb2.moneyday = '2010-01-12' and
                          tb2.doctype in ( 78 ) GROUP BY tb2.docid HAVING SUM(tb2.amount) >=  10 . 00 
                 )
group by ........
Хорошо этот код работает. Но, он группирует все записи по docid за указанный moneyеtime. А мне необходимо что бы выбирались записи за указанный moneyday + 1 час( (т.е. все транзакции с периодом в 1-н час)). Т.е. id_amount начиная с 1-го по 3 включительно попадает в диапазон 1-н час.... Потом 4,5, потом ...... потом 34, 35. Как мне это реализовать подскажите плз
...
Рейтинг: 0 / 0
Вывод записей....
    #36495950
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прочитай вот это: http://www.sql.ru/faq/faq_topic.aspx?fid=202
И вот это: http://www.sql.ru/forum/actualthread.aspx?tid=67261
Всегда пользуйся кнопкой "Предварительный просмотр".
...
Рейтинг: 0 / 0
Вывод записей....
    #36497615
v0ffka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
White OwlПрочитай вот это: http://www.sql.ru/faq/faq_topic.aspx?fid=202
И вот это: http://www.sql.ru/forum/actualthread.aspx?tid=67261
Всегда пользуйся кнопкой "Предварительный просмотр".

Упс. сории СУБД Sybase IQ 12.5
...
Рейтинг: 0 / 0
Вывод записей....
    #36497853
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я не понял что тебе в итоге нужно.
Но в общем, для группировки по часам в WSQL можно использовать запрос типа:
Код: plaintext
1.
2.
3.
select datepart(hour, timestamp_field) as HH, count(*) 
from sometable
where ....
group by HH
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Вывод записей....
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]