Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Горячая тема (более 10 ответов) НомерМесяца, Номерквартала в запросе (OLEDB)... (число прочтений - 3169 )
lustin
1c++ power user
Отсутствует


1C *.*, ROR, Java - на
этом остановимся

Сообщений: 907
Местоположение: Москва
Зарегистрирован: 20. Октября 2006
Пол: Мужской
НомерМесяца, Номерквартала в запросе (OLEDB)...
18. Августа 2007 :: 09:00
Печать  
Добрых всем выходных.

Рылся сегодня в справке по FoxPro, но так пока и не нашел

Вопрос в следующем:

"можно ли в запросе получить номер месяца и номер квартала, ну и год например"

Что имеется в виду:

Код
Выбрать все
"
SELECT
     <НомерГода>(Журнал.date) as Год,
     <НомерКвартала>(Журнал.date) as Квартал,
     <НомерМесяца>(Журнал.date) as Месяц,
     <НомерДекады>(Журнал.date) as Декада
FROM
     1SJourn as Журнал
" 


Предполагаю что необходимо скорее всего будет написать хранимую процедуру.

Вопрос в том в сторону каких функций FoxPro рыть.
  

бизнес-процесс как техническое задание прекрасно, только у бизнеса нет процессов; у бизнеса есть желание выжить
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
lustin
1c++ power user
Отсутствует


1C *.*, ROR, Java - на
этом остановимся

Сообщений: 907
Местоположение: Москва
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Re: НомерМесяца, Номерквартала в запросе (OLEDB)..
Ответ #1 - 18. Августа 2007 :: 09:28
Печать  
Код
Выбрать все
|  YEAR(Журнал.date) as Год,
|  CMONTH(Журнал.date) as Месяц,
|  CDOW(Журнал.date) as Дата, 



Такая конструкция возвращает к примеру для даты 03.01.2007

Цитата:
2007                              
Januar                        
Wednes


То есть английскую версию дат, поэтому видимо придется использовать просто Номера Месяца, Года.

Осталось найти возможность вичислить декаду и квартал Улыбка
  

бизнес-процесс как техническое задание прекрасно, только у бизнеса нет процессов; у бизнеса есть желание выжить
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
lustin
1c++ power user
Отсутствует


1C *.*, ROR, Java - на
этом остановимся

Сообщений: 907
Местоположение: Москва
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Re: НомерМесяца, Номерквартала в запросе (OLEDB)..
Ответ #2 - 18. Августа 2007 :: 09:32
Печать  
Функция QUARTER( ) возвращает номер квартала для указанной даты

Осталась НомерДекады  Круглые глаза
  

бизнес-процесс как техническое задание прекрасно, только у бизнеса нет процессов; у бизнеса есть желание выжить
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
kiruha
1c++ power user
Отсутствует



Сообщений: 1249
Зарегистрирован: 11. Апреля 2007
Re: НомерМесяца, Номерквартала в запросе (OLEDB)..
Ответ #3 - 18. Августа 2007 :: 09:44
Печать  
В vfpOLEDB можно писать встроенные процедуры(функции) и вычислять
хоть номер третьего вторника Улыбка
Процедура вычисляется один раз - дальше данные берутся из кэша -
т.е. достаточно эффективные.
  
Наверх
 
IP записан
 
lustin
1c++ power user
Отсутствует


1C *.*, ROR, Java - на
этом остановимся

Сообщений: 907
Местоположение: Москва
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Re: НомерМесяца, Номерквартала в запросе (OLEDB)..
Ответ #4 - 18. Августа 2007 :: 09:50
Печать  
kiruha писал(а) 18. Августа 2007 :: 09:44:
В vfpOLEDB можно писать встроенные процедуры(функции) и вычислять
хоть номер третьего вторника Улыбка
Процедура вычисляется один раз - дальше данные берутся из кэша -
т.е. достаточно эффективные.


ты имеешь ввиду соседнюю ветку про хранимые процедуры ?
http://www.1cpp.ru/forum/YaBB.pl?num=1183553285
  

бизнес-процесс как техническое задание прекрасно, только у бизнеса нет процессов; у бизнеса есть желание выжить
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
kiruha
1c++ power user
Отсутствует



Сообщений: 1249
Зарегистрирован: 11. Апреля 2007
Re: НомерМесяца, Номерквартала в запросе (OLEDB)..
Ответ #5 - 18. Августа 2007 :: 09:53
Печать  
Да. Там есть ссылка на хороший рабочий пример http://www.1cpp.ru/forum/YaBB.pl?num=1180606447.
Даже если ты получишь Номер месяца (Month() ) это тебя не избавит потом
от необходимости переводить номера в русские названия.
Поэтому лучше сразу написать процедуру в несколько строк,
которая выводит сразу русские названия месяцев(декад, ...).
  
Наверх
 
IP записан
 
kiruha
1c++ power user
Отсутствует



Сообщений: 1249
Зарегистрирован: 11. Апреля 2007
Re: НомерМесяца, Номерквартала в запросе (OLEDB)..
Ответ #6 - 18. Августа 2007 :: 09:55
Печать  
Впрочем чего это я - ты же все уже видел Улыбка
  
Наверх
 
IP записан
 
lustin
1c++ power user
Отсутствует


1C *.*, ROR, Java - на
этом остановимся

Сообщений: 907
Местоположение: Москва
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Re: НомерМесяца, Номерквартала в запросе (OLEDB)..
Ответ #7 - 18. Августа 2007 :: 10:38
Печать  
НА сегодня моих знаний хватило пока на такой файл хранимых процедур

Вызов преобразования в запросе:

Код
Выбрать все
|  nameofdate('QuarterName', Журнал.date) as Квартал,
|  nameofdate('MonthName', Журнал.date) as Месяц,
|  nameofdate('DecimalName', Журнал.date) as Декада,
 



Вызов через DO у меня не проходит, поэтому воспользовался примером от Chieftan

ЗЫ Наименование кварталов и декад в прицнипе каждый может написать для себя сам
  

NameOfDate.rar ( 0 KB | Загрузки )

бизнес-процесс как техническое задание прекрасно, только у бизнеса нет процессов; у бизнеса есть желание выжить
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
lustin
1c++ power user
Отсутствует


1C *.*, ROR, Java - на
этом остановимся

Сообщений: 907
Местоположение: Москва
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Re: НомерМесяца, Номерквартала в запросе (OLEDB)..
Ответ #8 - 18. Августа 2007 :: 10:43
Печать  
1. Сделали запрос
2. Сгруппировали с помощью ИТЗ
3. Вывели в таблицу

Примерный результат
  

___.jpg ( 30 KB | Загрузки )
___.jpg

бизнес-процесс как техническое задание прекрасно, только у бизнеса нет процессов; у бизнеса есть желание выжить
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
kiruha
1c++ power user
Отсутствует



Сообщений: 1249
Зарегистрирован: 11. Апреля 2007
Re: НомерМесяца, Номерквартала в запросе (OLEDB)..
Ответ #9 - 18. Августа 2007 :: 11:18
Печать  
Супер Улыбка
Народу часто требуются группировки по месяцам и т.п.
  
Наверх
 
IP записан
 
lustin
1c++ power user
Отсутствует


1C *.*, ROR, Java - на
этом остановимся

Сообщений: 907
Местоположение: Москва
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Re: НомерМесяца, Номерквартала в запросе (OLEDB)..
Ответ #10 - 29. Августа 2007 :: 05:54
Печать  
Слегка переделал процедуры, а точнее определение декад:

вызов все тот же

Код
Выбрать все
|  nameofdate('QuarterName', Журнал.date) as Квартал,
|  nameofdate('MonthName', Журнал.date) as Месяц,
| nameofdate('DecimalName',Журнал.date) as Декада,
 

  

nameofdate.rar ( 0 KB | Загрузки )

бизнес-процесс как техническое задание прекрасно, только у бизнеса нет процессов; у бизнеса есть желание выжить
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать