powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Запрос к DBF через VFP ODBC драйвер
11 сообщений из 11, страница 1 из 1
Запрос к DBF через VFP ODBC драйвер
    #33558049
firerer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
создам новую тему:
1)
Select
Reg.sp478 As Nomen,
Reg.Period As Period,
SUM(Reg.sp479 - RegOst.sp101) As Necessary
From
RG480 As Reg
Left join
RG98 As RegOst On RegOst.sp99 = Reg.sp478
Left join
sc60 As Nom On Nom.Id = Reg.sp478
Where
(Reg.sp479 - RegOst.sp101 > 0)
AND
Reg.Period = {^2006-02-01}
AND
RegOst.Period = {^2006-02-01}
Group by
Nomen

При попытке вставить в условие вместо (Reg.sp479 - RegOst.sp101 > 0)
функцию SUM(Reg.sp479 - RegOst.sp101) > 0 ругается на отсутсвие файла sum.prg (я так понимаю файл с описанием самой функции?)
Есть ли возможность указать так:
Where
(Necessary >0)
?
и если да - то как?

2) существует ли возможность создать временную таблицу и к ней делать запрос?
...
Рейтинг: 0 / 0
Запрос к DBF через VFP ODBC драйвер
    #33558116
Sergey Sizov.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
1. Чем не нравиться запись с в виде (Reg.sp479 - RegOst.sp101 > 0)?
SUM в SELECT, как и остальные агрегатные функции, обрабатывают набор записей, удовлетворяющих условию в Where. То есть условие в Where проверяется для каждой записи. Какой смысл считать SUM() для одной записи?
Далее: выражения в списке полей Select вычисляются, опять же, для записей,
удовлетворяющих условию в Where. То есть условие в Where проверяется для каждой записи. Как проверить условие с выражением, которе еще не вычислялось и для которого, собственно, идет проверка необходимости его вычисления?

2. Select * from table into cursor YourCursor
Но в 9-ке можно обойтись ds,jhrjq из выборки: select * from (select * from YourTable) TableAlias
...
Рейтинг: 0 / 0
Запрос к DBF через VFP ODBC драйвер
    #33558166
Фотография DIMM@
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
C функ. SUM у тебя все нормально(читай на нее help).
Мне кажется ты неккоректно ставиш условия выбора. Это условие(с Sum) не зависит от того где находится указатель записи при выборке, оно как бы общее. Загоняй лучше свой Select под If,его условием и будет проверка больше ли сумма нуля, и если да то Select. А в селекте выкидывай это условие

НУ и как писали Sergey, или так дописывай INTO TABLE с:\mytable - сохранит тебе выборку в указанном файде и месте
...
Рейтинг: 0 / 0
Запрос к DBF через VFP ODBC драйвер
    #33558212
firerer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DIMM@Cдописывай INTO TABLE с:\mytable - сохранит тебе выборку в указанном файде и месте

где дописать??? где емае??? ща допишу :)) надо позарез :))
...
Рейтинг: 0 / 0
Запрос к DBF через VFP ODBC драйвер
    #33558263
firerer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sergey Sizov.1. Чем не нравиться запись с в виде (Reg.sp479 - RegOst.sp101 > 0)?
SUM в SELECT, как и остальные агрегатные функции, обрабатывают набор записей, удовлетворяющих условию в Where. То есть условие в Where проверяется для каждой записи. Какой смысл считать SUM() для одной записи?
Далее: выражения в списке полей Select вычисляются, опять же, для записей,
удовлетворяющих условию в Where. То есть условие в Where проверяется для каждой записи. Как проверить условие с выражением, которе еще не вычислялось и для которого, собственно, идет проверка необходимости его вычисления?

2. Select * from table into cursor YourCursor
Но в 9-ке можно обойтись ds,jhrjq из выборки: select * from (select * from YourTable) TableAlias

спасибо. очень подробно и исчерпывающе. действительно лучше сразу задачу описАть. :)
вопщем надо получить набор записей сгруппированных по Nomen, Причем нужно получить поле1 = таб1.число - таб2.число, так чтобы сум(Поле1) > 0. остальные выкинуть нафек. причем просуммировать все записи с одинаковым Nomen в поле1.
фух. звиняйте если сумбурно.
...
Рейтинг: 0 / 0
Запрос к DBF через VFP ODBC драйвер
    #33559080
otorva
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
firerer

При попытке вставить в условие вместо (Reg.sp479 - RegOst.sp101 > 0)
функцию SUM(Reg.sp479 - RegOst.sp101) > 0 ругается на отсутсвие файла sum.prg (я так понимаю файл с описанием самой функции?)
Есть ли возможность указать так:
Where
(Necessary >0)


Наверное, выражение с SUM() следует поместить во фразе HAVING:

GROUP BY Nomenc HAVING SUM(Reg.sp479 - RegOst.sp101) > 0
...
Рейтинг: 0 / 0
Запрос к DBF через VFP ODBC драйвер
    #33559252
Sergey Sizov.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
otorvaНаверное, выражение с SUM() следует поместить во фразе HAVING:

GROUP BY Nomenc HAVING SUM(Reg.sp479 - RegOst.sp101) > 0

И что здесь будет суммироваться? Какие записи? По каким критериям они будут отбираться?
...
Рейтинг: 0 / 0
Запрос к DBF через VFP ODBC драйвер
    #33559276
Sergey Sizov.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 firerer:

Что за конфа? Стандартная непеределанная, стандартная переделанная, самописная? Кусочками использованных в запросе таблиц поделиться можешь?
...
Рейтинг: 0 / 0
Запрос к DBF через VFP ODBC драйвер
    #33559857
Фотография DIMM@
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
firererПричем нужно получить поле1 = таб1.число - таб2.число, так чтобы сум(Поле1) > 0. остальные выкинуть нафек.
Что ты имеешь ввиду? Т.е. все равно какие записи брать, лишь бы сумма >0 была? Или нужно выбирать по порядку до тех пор пока сумма >0? Или нужно выбрать все положительные разности?
...
Рейтинг: 0 / 0
Запрос к DBF через VFP ODBC драйвер
    #33560001
firerer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sergey Sizov.2 firerer:

Что за конфа? Стандартная непеределанная, стандартная переделанная, самописная? Кусочками использованных в запросе таблиц поделиться можешь?

самописка.
есть два регистра: заявки и остатки.
регистр заявки: измерение номенклатура, ресурс количество
Регистр остатки: измерения фирма, склад, номенклатура, ресурс количество.
надо выбрать номенклатуру которая есть в заявках > 0, и вычесть из нее остаток по этой номенклатуре. разница: количество которое необходимо докупить - совершенно олдовая схема - но рабочая. обычный запрос - долго.. пока все пересчитает-замаешся...а информация нужна оперативно. прямой запрос решает проблему оперативности, но накладывает ограничения связаные с невозможностью использования группировок и вложенных запросов. группировки не поддерживаюца объектом вывода: табличное поле, вложенные запросы - 6 драйвером фокса.
вот в таком кикозе я нахожусь:))
...
Рейтинг: 0 / 0
Запрос к DBF через VFP ODBC драйвер
    #33560016
firerer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а. и плюсь выводить надо только те поля где разница между заявкой и остатком больше 0.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Запрос к DBF через VFP ODBC драйвер
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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