2017-03-16 1 views
1

Ich habe die folgende Abfrage, um die Kommission wie level1-20%, level2-10%, level 3 - 5% mit neo4j mit zwei Beziehungen AFFILIATE_TO und PAID wie unten zu finden.Berechnen Sie den Umsatz aus jeder Ebene -neo4j

with [20.0, 10.0, 5.0] as percents 
match (i:Instructor)-[r:AFFILIATE_TO*..3]->()-[:PAID]->(t:Payment) 
with i, percents[size(r) - 1] as percent, t 
with i, t.amount * percent/100.0 as cut 
return i.name as Name, sum(cut) as revenue 

Hier ist es, die Einnahmen Summe der einzelnen Lehrer zurückkehren, ist es möglich, die einzelnen Einnahmen aus dieser query.ie die Einnahmen aus jeder Ebene zu berechnen?

meine ich die Details Instructor Name, Umsatzsumme, 20% Umsatzsumme, 10% Umsatzsumme, 5% Umsatz Summe enter image description here

Antwort

3

Cypher Aggregate oder Gruppen von RETURN von allen Tasten Sie zurückkommen. Also, wenn Sie RETURN Umsatz von jeder Ebene wollen, müssen Sie RETURN Level-Größe auch, oder zumindest verwenden Sie es in WITH Anweisung zu groupby.

with [20.0, 10.0, 5.0] as percents 
match (i:Instructor)-[r:AFFILIATE_TO*..3]->()-[:PAID]->(t:Payment) 
with i, percents[size(r) - 1] as percent, t, size(r) - 1 as level 
with i, t.amount * percent/100.0 as cut,level 
return i.name as Name, sum(cut) as revenue,level 
+0

Vielen Dank für Ihre reply.But Ich versuche, die Werte wie Instructor Name, Umsatzsumme, 20% Umsatzsumme, 10% Umsatzsumme, 5% Umsatz Summe – Shin

+1

@ShijinTR sollte nicht schwer zu bekommen zu ändern Für die Abfrage benötigen Sie eine Variable auf dem Affiliate-Knoten, Sie müssen keine SUM() -Operation ausführen, und Sie können die prozentuale Variable im Bereich behalten und sie (mit optionaler Formatierung) für den Prozentsatz zurückgeben. (und Ebene, wenn Sie es zurückgeben müssen, kann nur Größe (r) sein, keine Notwendigkeit, davon zu subtrahieren) – InverseFalcon

Verwandte Themen