Поиск:

Ответ в темуСоздание новой темы Создание опроса
> использование select *, поле from ... 
:(
    Опции темы
str_killer
Дата 23.3.2009, 08:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 14.5.2007

Репутация: нет
Всего: нет



есть запрос
Код

SELECT *, SUBSTRING(S_TIME FROM 1 FOR 8 ) tt
FROM "D:\temp.dbf" Temp
ORDER BY tt, param1

, поле S_TIME - строка формата "dd.MM.yy hh:mm:ss",
нужно отсортировать данные только по дате,
такой запрос ругается, что после * стоит запятая (Invalid use of keyword   Token:  ,   Line Number:1), т.е я так понял, что можно либо использовать звездочку, либо перечислять все поля,
полей в таблице более 50, которые могут меняться, поэтому их перечисление делает запрос неудобноиспользуемым
к тому же таблица, в зависимости от условий, имеет совершенно различные столбцы, общим остается только S_TIME

можно ли как-нибудь обойти это дело?
PM MAIL   Вверх
Albor
Дата 24.3.2009, 13:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 589
Регистрация: 28.2.2009

Репутация: нет
Всего: 9



А что мешает выполнить данный запрос без обрезки S_TIME, ведь запрос не группирует, а сортирует записи. Пусть сортировка идёт с учётом времени, что в этом плохого. Если нужно отобрать по дате, то добавить что-то вроде  WHERE S_TIME BETWEEN() (синтаксис точно не помню)

Это сообщение отредактировал(а) Albor - 24.3.2009, 13:38
PM MAIL ICQ   Вверх
str_killer
Дата 25.3.2009, 11:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 14.5.2007

Репутация: нет
Всего: нет



Цитата(Albor @  24.3.2009,  13:18 Найти цитируемый пост)
А что мешает выполнить данный запрос без обрезки S_TIME

Дело в том, что нужно отсортировать данные
1) по дате
2) по параметру param1, в зависимости от даты
те нужно из
дата 25-03-09 param1 = 1
дата 25-03-09 param1 = 2
дата 25-03-09 param1 = 3
дата 25-03-09 param1 = 3
дата 25-03-09 param1 = 1
дата 25-03-09 param1 = 3

получить 
дата 25-03-09 param1 = 1
дата 25-03-09 param1 = 1
дата 25-03-09 param1 = 2
дата 25-03-09 param1 = 3
дата 25-03-09 param1 = 3
дата 25-03-09 param1 = 3
PM MAIL   Вверх
Данкинг
Дата 25.3.2009, 11:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: нет
Всего: 130



Какая СУБД вообще?


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Albor
Дата 25.3.2009, 12:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 589
Регистрация: 28.2.2009

Репутация: нет
Всего: 9



Цитата(str_killer @  25.3.2009,  10:37 Найти цитируемый пост)
по параметру param1, в зависимости от даты

Так запрос выполняется таким образом?

Цитата(str_killer @  25.3.2009,  10:37 Найти цитируемый пост)
те нужно из
дата 25-03-09 param1 = 1
дата 25-03-09 param1 = 2
дата 25-03-09 param1 = 3
дата 25-03-09 param1 = 3
дата 25-03-09 param1 = 1
дата 25-03-09 param1 = 3

Если да то можно попробовать так:
Код

SELECT * FROM (SELECT *FROM "D:\temp.dbf" ORDER BY S_TIME) ORDER BY param1,S_TIME



Это сообщение отредактировал(а) Albor - 25.3.2009, 12:59
PM MAIL ICQ   Вверх
str_killer
Дата 27.3.2009, 08:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 14.5.2007

Репутация: нет
Всего: нет



Цитата(Albor @  25.3.2009,  12:46 Найти цитируемый пост)
можно попробовать так

то что я привел, немного некорректно, правильнее будет так
дата "25-03-09 00:00:00"  param1 = 1
дата "25-03-09 23:55:55"  param1 = 2
дата "25-03-09 20:15:15"  param1 = 3
дата "25-03-09 00:00:00"  param1 = 3
дата "25-03-09 10:10:10"  param1 = 1
дата "25-03-09 05:05:05"  param1 = 3

те время тоже присутствует(((, поэтому ваш запрос не прокатит

PM MAIL   Вверх
Albor
Дата 27.3.2009, 14:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 589
Регистрация: 28.2.2009

Репутация: нет
Всего: 9



Код

SELECT * FROM table1 ORDER BY param1, S_TIME

Выполняем для набора данных
Цитата(str_killer @  27.3.2009,  07:08 Найти цитируемый пост)

дата "25-03-09 00:00:00"  param1 = 1
дата "25-03-09 23:55:55"  param1 = 2
дата "25-03-09 20:15:15"  param1 = 3
дата "25-03-09 00:00:00"  param1 = 3
дата "25-03-09 10:10:10"  param1 = 1
дата "25-03-09 05:05:05"  param1 = 3

Получаем результат:
Код

дата "25-03-09 00:00:00"  param1 = 1
дата "25-03-09 10:10:10"  param1 = 1
дата "25-03-09 23:55:55"  param1 = 2
дата "25-03-09 00:00:00"  param1 = 3
дата "25-03-09 05:05:05"  param1 = 3
дата "25-03-09 20:15:15"  param1 = 3

Что не так?
PM MAIL ICQ   Вверх
str_killer
Дата 30.3.2009, 14:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 14.5.2007

Репутация: нет
Всего: нет



Цитата(Albor @  27.3.2009,  14:08 Найти цитируемый пост)
Что не так? 

не так то, что в примере данные за один день, а если дней будет несколько, то отсортируется по Param1, а мне нужна сортировка по Param1 с разбивкой по дням
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C++: Базы данных"
chipset

Данный форум предназначен для обсуждения вопросов прямым образом связанных с C++ и БД. Так, вопросы только по C++ следует задавать в C++:Общие вопросы а вопросы по абстрактным БД в Базах данных или в соответствующих под-форумах.

Благодарим за понимание.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, chipset.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Базы данных | Следующая тема »


 




[ Время генерации скрипта: 0.0508 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.