Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Как рассчитать остатки / 7 сообщений из 7, страница 1 из 1
29.03.2007, 22:57
    #34426129
khl
khl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как рассчитать остатки
Подскажите идею, пожалста.
Как рассчитать остатки на складе?
Я создал тестовую табличку. В ней 2 товара
Material_id = 0
Material_id = 1

6 накладных:
Приходные (nakl_type_id = 0)
И расходные (nakl_type_id = 1)

Нужно на сервере рассчитать остатки, приход минус расход и просуммировать по каждому материалу.

====================================
Таблица:
CREATE TABLE MATERIALS (
ID BIGINT NOT NULL WITH DEFAULT 0 ,
NAKL_TYPE_ID BIGINT NOT NULL WITH DEFAULT 0 ,
MATERIAL_ID BIGINT NOT NULL WITH DEFAULT 0 ,
PRICE DECIMAL(5,0) NOT NULL WITH DEFAULT 0 ,
QUANTITY DECIMAL(5,0) NOT NULL WITH DEFAULT 0 ,
PRIMARY KEY(ID)
)

И Insert:
Insert into materials (id, nakl_type_id, material_id, price, quantity) values (0, 0, 0, 15, 25);
Insert into materials (id, nakl_type_id, material_id, price, quantity) values (1, 0, 0, 14, 24);
Insert into materials (id, nakl_type_id, material_id, price, quantity) values (2, 0, 1, 13, 23);
Insert into materials (id, nakl_type_id, material_id, price, quantity) values (3, 0, 1, 12, 22);
Insert into materials (id, nakl_type_id, material_id, price, quantity) values (4, 1, 1, 11, 21);
Insert into materials (id, nakl_type_id, material_id, price, quantity) values (5, 1, 1, 10, 20);
...
Рейтинг: 0 / 0
30.03.2007, 04:31
    #34426241
Бабичев Сергей
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как рассчитать остатки
CASE + GROUP BY тебе в помощь
...
Рейтинг: 0 / 0
30.03.2007, 06:09
    #34426262
golsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как рассчитать остатки
Просто раскрываю предыдущий пост
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
select
  sum(case NAKL_TYPE_ID
        with  0  then QUANTITY
        with  1  then -QUANTITY
      end) as QUANTITY,
  MATERIAL_ID
from MATERIALS 
group by MATERIAL_ID
...
Рейтинг: 0 / 0
30.03.2007, 10:19
    #34426598
khl
khl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как рассчитать остатки
спасибо
...
Рейтинг: 0 / 0
12.04.2007, 17:01
    #34456812
khl
khl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как рассчитать остатки
Подскажите еще, пожалуйста.
Выше приведенный пример.
Как сделать чтобы не отображались строки с нулевым количеством?
т.е что-то типа
Код: plaintext
1.
2.
3.
where sum(case NAKL_TYPE_ID
           when  0  then QUANTITY
           when  1  then -QUANTITY
         end) >  0 

(Синтаксические диаграммы от IBM это ... охренеть можно !)
...
Рейтинг: 0 / 0
12.04.2007, 18:56
    #34457327
TORT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как рассчитать остатки
Ничего не "охренеть".... Having sum() <> 0
...
Рейтинг: 0 / 0
12.04.2007, 19:27
    #34457405
khl
khl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как рассчитать остатки
Блин! Точно. Работает.
Спасибо.
...
Рейтинг: 0 / 0
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Как рассчитать остатки / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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