У меня следующий запрос SQL:
SELECT q1.customerId, q1.invoiceId, q2.workId, sum(q2.price)
FROM (select customer.id as customerId, invoice.id as invoiceId, work.id as workId from customer, invoice, workinvoice, work where customer.id=invoice.customerid and invoice.id=workinvoice.invoiceId and workinvoice.workId=work.id
) as q1, (select work.id as workId, sum((price * hours * workhours.discount) + (purchaseprice * amount * useditem.discount)) as price from worktype,workhours,work,warehouseitem,useditem where worktype.id=workhours.worktypeid and workhours.workid=work.id and work.id=useditem.workid and useditem.warehouseitemid=warehouseitem.id group by work.id
) as q2
WHERE q1.workId = q2.workId group by q1.invoiceId;
Этот запрос должен возвращать мне сумму цен на работы для каждого счета на одного клиента.
Мне было бы интересно узнать, как выполнить такой запрос в Neo4J. Я знаю, что есть UNION https://neo4j.com/docs/cypher-manual/current/clauses/union/. Однако, похоже, это делает то, что я хочу. Мне нужно сделать два подзапроса и соединить их с того же узла, что и в этом примере SQL. Как правильно сделать это с Сайфером?