1 (edited by avmakarov91 2019-06-27 20:51:29)

Topic: Вычисляемое поле (подобие склада)

Добрый день!

В таблице Amaount_delivery есть вычисляемое поле calc_ost в нём принцип посчитать разность сумм количества прихода и отгрузки сортируя по клиенту и товару (товар словарь), но мне нужно чтобы и учитывался лот (lot строка в таблице). Никак не получается написать вычисляемое поле, чтобы учитывались эти при условия, помогите, пожалуйста. Проект прилагаю((

Post's attachments

Attachment icon Склад — копия — копия — копия.rar 303.75 kb, 209 downloads since 2019-06-27 

Re: Вычисляемое поле (подобие склада)

какие именно поля нужны?

Re: Вычисляемое поле (подобие склада)

(

(SELECT TOTAL(Amount_delivery) FROM Amount_delivery WHERE Amount_delivery.id_goods=goods.id AND Amount_delivery.id_client=client.id AND Amount_delivery.lot=Amount_shipment.lot) - 

(SELECT TOTAL(Amount_shipment) FROM Amount_shipment WHERE Amount_shipment.id_goods=goods.id AND Amount_shipment.id_client=client.id)                                         
                                                                                                                                                                                       
)         

Мне нужно чтобы при подсчете TOTAL учитывались поля  id_goods, id_client и lot (считал только одинаковые записи лот), т.е. сумму всех amount определённого клиента (client), определённого товара (goods) и определённого лота (lot)

Re: Вычисляемое поле (подобие склада)

помогите, пожалуйста, нужно очень срочно((

5 (edited by sibprogsistem 2019-06-27 21:55:55)

Re: Вычисляемое поле (подобие склада)

(
(
 (SELECT TOTAL(Amount_delivery) FROM Amount_delivery WHERE Amount_delivery.id_goods=goods.id)+
 (SELECT TOTAL(Amount_delivery) FROM Amount_delivery WHERE Amount_delivery.id_client=client.id)+
 (SELECT TOTAL(Amount_delivery) FROM Amount_delivery LEFT OUTER JOIN Amount_Shipment ON Amount_delivery.lot=Amount_Shipment.lot WHERE Amount_delivery.id_client=Amount_Shipment.id)
 ) -
 (
 (SELECT TOTAL(Amount_shipment) FROM Amount_shipment WHERE Amount_shipment.id_goods=goods.id) +
 (SELECT TOTAL(Amount_shipment) FROM Amount_shipment WHERE Amount_shipment.id_client=client.id)
) 
)  

Re: Вычисляемое поле (подобие склада)

Спасибо! Но получилось не совсем то что мне нужно. Может я не правильную модель выбрал.

Мне необходимо посчитать  сумму amount (кол-во) из amount_delivery(приход)  выбирая из условия (опред клиент AND опред товар(goods) AND определённый лот (lot))

если с клиентом и товаром всё понятно, там ключи, то лот (lot) отсортировать у меня не получается(((((

принцип такой

id goods     client         lot         amount
1  сахар   склад 1        12           2
2  сахар   склад 2        12           4
3  масло   склад 1        3             1
4  сахар    склад 1        12            1

и мне нужно чтобы результат был на складе 1

id goods     client         lot         amount
1  сахар   склад 1        12           3
2  сахар   склад 2        12           4
3  масло   склад 1        3             1

Как это реализовать?(

7 (edited by sibprogsistem 2019-06-28 07:18:42)

Re: Вычисляемое поле (подобие склада)

(


(
 SELECT 
  TOTAL(Amount_delivery)
  FROM Amount_delivery   
  LEFT OUTER JOIN Amount_Shipment
   ON Amount_delivery.lot=Amount_Shipment.lot
  WHERE Amount_delivery.id_goods=goods.id
       AND Amount_delivery.id_client=client.id  
 
 ) -              
 (
 SELECT 
  TOTAL(Amount_shipment) 
  FROM Amount_shipment 
  WHERE Amount_shipment.id_goods=goods.id
      AND  Amount_shipment.id_client=client.id 

) 
                                                                                                                                                                                       
)