2015-10-03 5 views
0

Я пытаюсь создать базу данных Bookstore, где клиенты могут покупать книги. Есть таблички Book, BookCategory, Customer, Invoice. Я использую отношение INVOICEITEM между счетами и книгами. я добавил имущество netTotal в счете-фактуре для хранения суммы стоимости книг, связанных с INVOICEITEM со счетом-фактурой. Я попытался получить общую стоимость книг, связанных с фактурой.Использовать одно значение запроса в другом запросе Neo4j CQL

MATCH (n:Invoice {id:'inv001'})-[:INVOICEITEM]->m RETURN SUM(m.price) 

и я попытался изменить netTotal propertyy invoice с помощью этой команды.

MATCH (n:Invoice{ id: 'inv001' }) SET n.netTotal = ((n:Invoice {id:'inv001'})-[:INVOICEITEM]-> m RETURN SUM(m.price)) 

, но это возвращает ошибку. Я новичок в neo4j и благодарю вас.

ответ

2

Запрос на обновление netTotal на узле счета-фактуры должны быть:

MATCH (n:Invoice {id: 'inv001'})-[:INVOICEITEM]->(m:Book) 
WITH n, SUM(m.price) AS netTotal 
SET n.netTotal = netTotal 

Вычислить сумму Book цен, используя WITH заявление довести это значение вдоль к SET заявления обновить netTotal собственности на Invoicen. Обратите внимание, что вам также нужно указать n в операторе WITH, чтобы передать эту связанную переменную в запрос. Дополнительная информация на сайте WITH заявление here

+0

спасибо. очень полезно. –

Смежные вопросы