在零售商報告視角中,您希望報告文章的執行情況以及您有多少庫存。 (非常簡化)。遍歷neo4j:結果被過濾
鑑於(子)結構:
(Product)-[HasStock]->(Stock)
(Product)-[InSale]->(Sale)
試想一下,我們有2種產品:
P1 = {Id= 1, Color=Black, Size=L}
P2 = {Id= 2 ,Color=Black, Size=M}
每個人都有的(股票)股票入門{數量= 2}(又名4。單位是股票) 在銷售,我們有:
S1 = {Id= 1, Product= 1, Quantity=1}
如果我查詢數據爲 P.Product,P.Color,P.Size,Sum(Stock.Quantity) as stockcount, Sum(Sale.Quantity) as sold
我總是隻得到一個結果返回P1產品和2(而不是2個對象,總和(股票)= 4)的庫存....我需要的是來自Relational的「外部連接」機制dbms .... 我該如何做到這一點?
(重新建立關係是可以的,但是產品並不是每天都有銷售,因此向具有空關係的銷售添加額外的節點將不是一種選擇)。 (在1億個節點上工作)。
同樣,我不想做一個笛卡爾乘積,因爲它會炸燬性能:(
你能分享你的密碼查詢嗎? ? –
查詢如下:'match(p:Product) - (stock:Stock)with sum(stock.Quantity)as stockcount,p as p match(p) - (sale:Sale)return p.Color,p .Size,stockcount' Schema就像這樣:CREATE(:Product {Id:1,Color:「Black」,Size:「L」}),(:Product {Id:2,Color:「Black」,Size :「S」});創建(:Stock {Id:1,Product:1,Quantity:2}),(:Stock {Id:2,Product:2,Quantity:2});創建(:Sale {Id:1,Product:1,Quantity:1}); MATCH(p:Product),(s:Stock) 其中p.Id = s.Product CREATE(p) - [:onStock] - >(s); MATCH(P:產品),(S:出售) 其中p.Id = s.Product CREATE(P) - [:inSale] - >(S); ' –