Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Проблема с запросом / 6 сообщений из 6, страница 1 из 1
01.07.2005, 17:50:38
    #33145810
tigramax
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с запросом
В командном окне ввожу строку с запросом все отрабатывает нормально
в моем методе вылетает с ошибкой отсутствует :или неправильно объявлен group by.
Вот фрагмент метода ошибка возникает на последней строке:
d1 = CTOD(ALLTRIM(STR(ThisForm.Pageframe1.Page4.OLEDate1.Day))+"."+ALLTRIM(STR(ThisForm.Pageframe1.Page4.OLEDate1.Month))+"."+ALLTRIM(STR(ThisForm.Pageframe1.Page4.OLEDate1.Year)))
d2 = CTOD(ALLTRIM(STR(ThisForm.Pageframe1.Page4.OLEDate2.Day))+"."+ALLTRIM(STR(ThisForm.Pageframe1.Page4.OLEDate2.Month))+"."+ALLTRIM(STR(ThisForm.Pageframe1.Page4.OLEDate2.Year)))

Select product_id As pid, sum(nalichie) As ss FROM SKLAD Group BY product_id INTO CURSOR crSklad
Select product_id As pid, sum(amount) As ss FROM ZAKUPKI WHERE date >= d1 AND date <= d2 Group BY product_id INTO CURSOR crZak
Select product_id As pid, sum(amount) As ss FROM SALE WHERE date >= d1 AND date <= d2 Group BY product_id INTO CURSOR crSale
Select product_id As pid, sum(amount) As ss FROM VOZVRAT WHERE date >= d1 AND date <= d2 Group BY product_id INTO CURSOR crVozvrat
Select product_id As pid, sum(amount) As ss FROM SPISANIE WHERE date >= d1 AND date <=d2 Group BY product_id INTO CURSOR crSpisanie
...
Рейтинг: 0 / 0
01.07.2005, 18:18:56
    #33145863
Sergey Sizov.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с запросом
1. Вот такое выражение:
Код: plaintext
1.
CTOD(ALLTRIM(STR(ThisForm.Pageframe1.Page4.OLEDate1.Day))+"."+ALLTRIM(STR(ThisForm.Pageframe1.Page4.OLEDate1.Month))+"."+ALLTRIM(STR(ThisForm.Pageframe1.Page4.OLEDate1.Year)))
можно заменить на такое:
Код: plaintext
1.
date(ThisForm.Pageframe1.Page4.OLEDate1.Year, ThisForm.Pageframe1.Page4.OLEDate1.Month, ThisForm.Pageframe1.Page4.OLEDate1.Day)

Мне оно кажется элегантнее.

2. Вот такое выражение:
Код: plaintext
date >= d1 AND date <= d2
неплохо заменяется на:
Код: plaintext
date between d1 and d2

Но тут уже дело вкуса.

3.Проверь полноту идентичности product_id в select и в group by. Другими словами - совпадают ли они буква в букву, не затерлась ли где русская буковка.
...
Рейтинг: 0 / 0
04.07.2005, 12:17:31
    #33147636
tigramax
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с запросом
Блин! не помогает! в group by и в select написал все по аглицки та же самая ошибка
...
Рейтинг: 0 / 0
04.07.2005, 12:56:09
    #33147742
leaf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с запросом
почему то навязчивая идея спросить вас про комментарии
не предшесвуют ли они запросу?
а то может они пол строки кода сожрали если на точку с запятой заканчиваются
дело в том что в самом запросе ошибок не видно
...
Рейтинг: 0 / 0
04.07.2005, 13:54:58
    #33147913
tigramax
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с запросом
Ой! Проблема такая. С вышеуказаными запросами разобрался, но почему-то
следующий сразу за ним запрос вылетает с той же ошибкой исполбзую vfp8.
Вот полный текст:
d1 = CTOD(ALLTRIM(STR(ThisForm.Pageframe1.Page4.OLEDate1.Day))+"."+ALLTRIM(STR(ThisForm.Pageframe1.Page4.OLEDate1.Month))+"."+ALLTRIM(STR(ThisForm.Pageframe1.Page4.OLEDate1.Year)))
d2 = CTOD(ALLTRIM(STR(ThisForm.Pageframe1.Page4.OLEDate2.Day))+"."+ALLTRIM(STR(ThisForm.Pageframe1.Page4.OLEDate2.Month))+"."+ALLTRIM(STR(ThisForm.Pageframe1.Page4.OLEDate2.Year)))
Select product_id As pid, sum(nalichie) As ss FROM SKLAD Group BY product_id INTO CURSOR crSklad
Select product_id As pid, sum(amount) As ss FROM ZAKUPKI WHERE date >= d1 AND date <= d2 GROUP BY product_id INTO CURSOR crZak
Select product_id As pid, sum(amount) As ss FROM SALE WHERE date >= d1 AND date <= d2 GROUP BY product_id INTO CURSOR crSale
Select product_id As pid, sum(amount) As ss FROM VOZVRAT WHERE date >= d1 AND date <= d2 Group BY product_id INTO CURSOR crVozvrat
Select product_id As pid, sum(amount) As ss FROM SPISANIE WHERE date >= d1 AND date <=d2 GROUP BY product_id INTO CURSOR crSpisanie
SELECT p.id,;
p.name,;
S.ss As Остаток1,;
p.price As Сумма,;
Sum(Z.ss) As Закуплено,;
Sum(V.ss) As Возврат,;
0 As Приход,;
Sum(SALE.ss) As Продано в сети,;
Sum(SP.ss) As Списано,;
0 As Расход,;
S.ss As Остаток2,;
0 As Сумма;
From PRODUCTS p;
LEFT JOIN crSklad S ON S.pid = p.id;
LEFT JOIN crZak Z ON Z.pid = p.id;
LEFT JOIN crSale SALE ON SALE.pid = p.id;
LEFT JOIN crVozvrat V ON V.pid = p.id;
LEFT JOIN crSpisanie SP ON SP.pid = p.id ;
GROUP BY p.id, p.name, p.price INTO CURSOR crResult
...
Рейтинг: 0 / 0
04.07.2005, 14:25:23
    #33147996
Sergey Sizov.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с запросом
А теперь в group by допиши все те поля, которые есть в списке select и в которых при этом не используется SUM().
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Проблема с запросом / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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