powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Что добавить в запрос?
8 сообщений из 8, страница 1 из 1
Что добавить в запрос?
    #35528782
Jimy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте. Вот такая задачка: есть таблица, в которой
учитывается поступление и расход товаров. Каждая запись
идентифицируется полем operation - "П" поступление, "Р" - реализация.
Нужно узнать количество каждого наименования. Делаю такой запрос:
(Использую Combo с RowSourseType =3)
*************
SELECT details

this.RowSource ="SELECT Details.product, SUM(Details.volume);
FROM ;
ourbusiness!details ;
WHERE details.idstore=stores.idstore;
GROUP BY Details.product INTO CURSOR tempgood"
****************
Но в этом случае суммируются все записи по каждому наименованию
и приход и расход. А нужно от суммы всех приходов отнять сумму всех
расходов. Подскажите, что добавить в запрос?

И еще вопрос: как в гриде отображать отризацельные значения как положительные
т.е. без минуса?
Спасибо.
...
Рейтинг: 0 / 0
Что добавить в запрос?
    #35528785
Galyamov Rinat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SELECT details
this.RowSource ="SELECT Details.product, SUM(iif(operation - "П",
Details.volume, -Details.volume);
FROM ;
ourbusiness!details ;
WHERE details.idstore=stores.idstore;
GROUP BY Details.product INTO CURSOR tempgood"

> И еще вопрос: как в гриде отображать отризацельные значения как
> положительные
> т.е. без минуса?

колонка.ControlSource="iif(поле<0, -поле, поле)"


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Что добавить в запрос?
    #35528788
Kruchinin Pahan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Galyamov Rinat
колонка.ControlSource="iif(поле<0, -поле, поле)"

А чего не ABS(поле)? Опять же, быстрее будет.
...
Рейтинг: 0 / 0
Что добавить в запрос?
    #35528789
Jimy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем спасибо, но по поводу первого вопроса : "П"=12, "Р"=10, выполняю приведеный Вами код, результат=22, а должно быть 2...



SELECT details

this.RowSource ="SELECT Details.product, SUM(IIF(ALLTRIM(details.oper)=ALLTRIM('Ï'),Details.volume,-Details.volume));
FROM ourbusiness!details WHERE details.idstore=stores.idstore GROUP BY Details.product INTO CURSOR tempgood"

=22!
Спасибо.
...
Рейтинг: 0 / 0
Что добавить в запрос?
    #35528835
Galyamov Rinat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пиши код, генерерующий таблицы.
create cursor
insert into


Тогда можно чего-то смотреть, а так телепатия сполшная.


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Что добавить в запрос?
    #35528963
Jimy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну примерно так (в общем случае)
Создаю такую таблицу:
CREATE table detail (datedoc D(4),product c(40),price n(10,2),volume n(10,2),total n (10,2) ,oper c(1))
Потом заполняю её, получается так:

01.09.2008 Товар1 100 5 500 "П" - это запись о поступлении товара
02.09.2008 Товар1 20 5 100 "Р" - это запись о продаже этого же товара

Конечно, у всех товаров есть ID, есть ID склада и т.д.
Меня интересует, как при помощи запроса проссумировать количество и получить остаток, например на 03.09.2008
Т.е. нужно сложить все приходы по данному товару и отнять сумму всех расходов.
Подскажите сам принцип, все дополнительные условия я сам потом установлю.
Конструкция SUM(IIF(ALLTRIM(details.oper)=ALLTRIM('П'),Details.volume,-Details.volume)) не сработала... Выдает 600, хотя надо 400
Спасибо.
...
Рейтинг: 0 / 0
Что добавить в запрос?
    #35529020
Galyamov Rinat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ладно, сделаю за тебя:



CREATE CURSOR detail (datedoc D(4),product c(40),price n(10,2),volume
n(10,2),total n (10,2) ,oper c(1))

INSERT INTO detail (datedoc,product,price,volume,total,oper) VALUES
({01.09.2008}, 'Товар1', 100, 500, 5, "П")

INSERT INTO detail (datedoc,product,price,volume,total,oper) VALUES
({01.09.2008}, 'Товар1', 20, 100, 5, "Р")

SELECT
SUM(IIF(ALLTRIM(detail.oper)=ALLTRIM('П'),Detail.volume,-Detail.volume))
FROM detail



Выбирает 400. Где проблема?


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Что добавить в запрос?
    #35529042
Jimy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Большое спасибо! там был косяк в самой форме, недоглядел...
Действительно все работает!
Тему можно закрыть.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Что добавить в запрос?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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