|
Что добавить в запрос?
|
|||
---|---|---|---|
#18+
Здравствуйте. Вот такая задачка: есть таблица, в которой учитывается поступление и расход товаров. Каждая запись идентифицируется полем 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" **************** Но в этом случае суммируются все записи по каждому наименованию и приход и расход. А нужно от суммы всех приходов отнять сумму всех расходов. Подскажите, что добавить в запрос? И еще вопрос: как в гриде отображать отризацельные значения как положительные т.е. без минуса? Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2008, 04:21 |
|
Что добавить в запрос?
|
|||
---|---|---|---|
#18+
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 ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2008, 05:13 |
|
Что добавить в запрос?
|
|||
---|---|---|---|
#18+
Galyamov Rinat колонка.ControlSource="iif(поле<0, -поле, поле)" А чего не ABS(поле)? Опять же, быстрее будет. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2008, 05:50 |
|
Что добавить в запрос?
|
|||
---|---|---|---|
#18+
Всем спасибо, но по поводу первого вопроса : "П"=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! Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2008, 05:56 |
|
Что добавить в запрос?
|
|||
---|---|---|---|
#18+
пиши код, генерерующий таблицы. create cursor insert into Тогда можно чего-то смотреть, а так телепатия сполшная. Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2008, 08:13 |
|
Что добавить в запрос?
|
|||
---|---|---|---|
#18+
Ну примерно так (в общем случае) Создаю такую таблицу: 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 Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2008, 09:42 |
|
Что добавить в запрос?
|
|||
---|---|---|---|
#18+
Ладно, сделаю за тебя: 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 ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2008, 10:07 |
|
|
start [/forum/topic.php?fid=41&gotonew=1&tid=1587310]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
51ms |
get topic data: |
9ms |
get first new msg: |
7ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
others: | 11ms |
total: | 152ms |
0 / 0 |