powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Проблема с запросом
6 сообщений из 6, страница 1 из 1
Проблема с запросом
    #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
Проблема с запросом
    #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
Проблема с запросом
    #33147636
tigramax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Блин! не помогает! в group by и в select написал все по аглицки та же самая ошибка
...
Рейтинг: 0 / 0
Проблема с запросом
    #33147742
leaf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
почему то навязчивая идея спросить вас про комментарии
не предшесвуют ли они запросу?
а то может они пол строки кода сожрали если на точку с запятой заканчиваются
дело в том что в самом запросе ошибок не видно
...
Рейтинг: 0 / 0
Проблема с запросом
    #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
Проблема с запросом
    #33147996
Sergey Sizov.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А теперь в group by допиши все те поля, которые есть в списке select и в которых при этом не используется SUM().
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Проблема с запросом
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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