Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Я так понимаю - это bug / 7 сообщений из 7, страница 1 из 1
02.06.2004, 19:52
    #32545488
funikovyuri
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Я так понимаю - это bug
Код: plaintext
1.
2.
3.
SELECT cursor_деб_обороты.id,QUARTER(cursor_деб_обороты.дата_док) as квартал;
FROM cursor_деб_обороты GROUP BY квартал;
INTO CURSOR cursor_сгрупированные_обороты_по_кварт

Не дает - пишет что function argument value,type, or count is invalid

Хотя без проблем разрешает
Код: plaintext
1.
2.
3.
4.
SELECT cursor_деб_обороты.id,;
	  (cursor_деб_обороты.дата_док-DAY(cursor_деб_обороты.дата_док)+ 1 ) as дата ,sum(сумма) as кред_обор;
FROM cursor_деб_обороты ;
GROUP BY id,дата;
INTO CURSOR cursor_сгрупированные_обороты
...
Рейтинг: 0 / 0
02.06.2004, 21:31
    #32545540
funikovyuri
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Я так понимаю - это bug
дальше-лучше

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
SELECT cursor_счета.id, cursor_счета.номер, 10 *YEAR(paydocs.дата_док)+QUARTER(paydocs.дата_док) as квартал, paydocs.дата_док,сумма;
FROM paydocs;
	JOIN provs;
		ON paydocs.id=provs.id_doc;
	JOIN cursor_счета;
		ON provs.id_cred=cursor_счета.id;
WHERE paydocs.состояние =  2  AND paydocs.дата_док between m.from_date AND m.till_date;
INTO CURSOR cursor_деб_обороты

Вот для такого запроса при
m.from_date = CTOD('1.1.2004')
m.till_date = CTOD('31.5.2004')

Все Ok, а вот при
m.from_date = CTOD('1.3.2004')
m.till_date = CTOD('31.5.2004')

та же ошибка!!!

PS> VFP7
...
Рейтинг: 0 / 0
02.06.2004, 23:02
    #32545585
Crip
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Я так понимаю - это bug
Ага баг. Исправлен в VFP8.
Вот только уже не помню из-за чего он возникает. Кажется из-за пустой даты, но может еще из-за чего то...
...
Рейтинг: 0 / 0
03.06.2004, 12:58
    #32546439
funikovyuri
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Я так понимаю - это bug
Crip
Как всегда спасибо


Я так понимаю если набор данных пуст VFP все равно вызывает QUARTER непонятно для чего и получает эту ошибку - так что впринципе можно обойти добавив
Код: plaintext
IIF(EMPTY(paydocs.дата_док), 0 , QUARTER(paydocs.дата_док)) as квартал
...
Рейтинг: 0 / 0
02.07.2004, 09:18
    #32586386
Alesh. Corp.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Я так понимаю - это bug
Вообще, в SQL запросах рекомендуют отказываться от сложных пользовательских функций (да и не сложных тоже - из опыта), т. к. Fox может: либо выполнять запрос по-разному, либо не выполнять запрос, либо выдавать сообщение об ошибке.
...
Рейтинг: 0 / 0
02.07.2004, 11:00
    #32586637
XAndy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Я так понимаю - это bug
авторВообще, в SQL запросах рекомендуют отказываться от сложных пользовательских функций

Можно, если реализовывать эти функции на C
...
Рейтинг: 0 / 0
02.07.2004, 11:39
    #32586748
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Я так понимаю - это bug
Попробуй вместо функции QUARTER( ) сделать явное вычисление квартала:

Код: plaintext
INT((MONTH([дата])- 1 )/ 3 )+ 1 
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Я так понимаю - это bug / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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