2016-11-07 154 views
0

使用下面的查詢,我發現,有一個股票的位置的項目中,有多個行從精確在線的REST API StockLocations返回:數量的股票在股票地點在精確的在線

select spn.item_code_attr || '-' || spn.warehouse_code_attr || '-' || stn.code key 
,  itm.itemgroupcode 
,  itm.itemgroupdescription 
,  spn.item_code_attr 
,  spn.item_description 
,  spn.currentquantity 
,  spn.planning_in 
,  spn.planning_out 
,  spn.currentquantity + spn.planning_in - spn.planning_out plannedquantity 
,  -1 bestelniveau /* out of scope */ 
,  itm.costpricestandard costprijs 
,  itm.costpricestandard * spn.currentquantity stockvalue 
,  spn.warehouse_code_attr 
,  stn.code locatie 
,  itm.unitcode UOM 
, itm.id 
, whe.id 
, sln.stock 
, sln.itemid 
, sln.warehouse 
, stn.id 
from exactonlinexml..StockPositions spn 
join exactonlinerest..items itm 
on  itm.code = spn.item_code_attr 
and itm.code = 'LE-10242' 
and itm.isstockitem = 1 
join exactonlinerest..warehouses whe 
on  whe.code = spn.warehouse_code_attr 
left 
outer 
join exactonlinerest..stocklocations sln 
on  sln.itemid = itm.id 
and sln.stock != 0 
and sln.warehouse = whe.id 
left 
outer 
join storagelocations stn 
on  stn.id  = sln.storagelocation 
and stn.warehouse = sln.warehouse 
-- 
-- Filter out no stock nor planned. 
-- 
where (spn.currentquantity !=0 
     or  
     spn.planning_in != 0 
     or  
     spn.planning_out != 0 
     ) 
and spn.item_code_attr = 'LE-10242' 
order 
by  key 

對於例如,對於這個項目,有10個StockLocations。在對庫存進行彙總時,它會返回在StockPositions中找到的庫存數量。但是,似乎每個事務都會創建一個額外的StockLocation條目。

我希望StockLocation包含庫存中的每個庫位的總庫存量。

編輯

API在https://start.exactonline.nl/api/v1/{division}/logistics/$metadata所描述的StockLocations:

<EntityType Name="StockLocation"> 
    <Key> 
    <PropertyRef Name="ItemID"/> 
    </Key> 
    <Property Name="ItemID" Type="Edm.Guid" Nullable="false"/> 
    <Property Name="Warehouse" Type="Edm.Guid" Nullable="true"/> 
    <Property Name="WarehouseCode" Type="Edm.String" Nullable="true"/> 
    <Property Name="WarehouseDescription" Type="Edm.String" Nullable="true"/> 
    <Property Name="Stock" Type="Edm.Double" Nullable="true"/> 
    <Property Name="StorageLocation" Type="Edm.Guid" Nullable="true"/> 
    <Property Name="StorageLocationCode" Type="Edm.String" Nullable="true"/> 
    <Property Name="StorageLocationDescription" Type="Edm.String" Nullable="true"/> 
</EntityType> 

不知怎的,它是不是在https://start.exactonline.nl/docs/HlpRestAPIResources.aspx

記錄我在做什麼錯?

+0

呃,[該表不存在於API中](https://developers.exactonline.com/#RestRefDocs.html%3FTocPath%3DExact%2520Online%2520REST%2520API%7C_____1)。你從哪裏得到那個的? –

回答

0

與工程師討論Hackathon的問題。這是StockLocation API的工作原理;命名不能最佳地反映內容,但這是意圖行爲。

使用select field, sum(stock) from stocklocations group by field,您可以獲得正確的信息。

要提高連接性能,建議對此使用內嵌視圖,例如select ... from table1 join table2 ... join (select field, sum(stock) from stocklocations group by field)