Neo.ClientError.Statement.SyntaxError: Неверный ввод ')': ожидаемый пробел или шаблон отношения (строка 66, столбец 100 (смещение: 1898)) "CREATE (z: Subscription {subscriptionId: subs.subscriptionId, startDate: subs.startDate, endDate: ''}) <- [r: ASSOCIATION] - (y: Person {nationalIdentityNumber: subs.nationalIdentityNumber, имя: subs.name, фамилия: subs.surname, имя отца: subs.fathername,национальность: subs.nationality, passportNo: subs.passportNo, birthdate: subs.birthdate}) "</p>
Я хочу создать / объединить узлы и отношения, типами которых являются Person, Subscription и Line
Если бы у меня была такая же подписка, я должен проверить startDate, если дата начала новых данных больше старых данных;Я должен создать новую подписку, а также изменить дату окончания старой подписки.
UNWIND [{
msisdn:'99658321564',
name:'Lady',
surname:'Camble',
fatherName:'Aeron',
nationality:'EN',
passportNo:'PN-1234224',
birthDate:'12-05-1979',
nationalIdentityNumber:'112124224',
subscriptionId:'2009201999658321564',
startDate:'20-09-2019 12:00:12'
},{msisdn:'99658363275',
name:'John',
surname:'Mckeen',
fatherName:'Frank',
nationality:'EN',
passportNo:'PN-126587',
birthDate:'15-08-1998',
nationalIdentityNumber:'2548746542',
subscriptionId:'1506201999658363275',
startDate:'15-06-2019 13:00:12'}
{
msisdn:'99658321564',
name:'Lady',
surname:'Camble',
fatherName:'Aeron',
nationality:'EN',
passportNo:'PN-1234224',
birthDate:'12-05-1979',
nationalIdentityNumber:'112124224',
subscriptionId:'2009201999658321564',
startDate:'31-11-2019 12:00:12'
}
] as subs
MERGE (y:Person {nationalIdentityNumber: subs.nationalIdentityNumber, name: subs.name, surname: subs.surname, fathername: subs.fathername , nationality: subs.nationality, passportNo: subs.passportNo, birthdate: subs.birthdate })
MERGE (t:Subscription{subscriptionId:subs.subscriptionId })
MERGE (y)-[rel:ASSOCIATION]-(t)
ON MATCH SET
t.endDate = (case when t.startDate <subs.startDate then subs.startDate else ''
end)
MATCH (t:Subscription) where t.subscriprionId=subs.subscriprionId and
(CASE
WHEN t.endDate=subs.startDate then
CREATE (z:Subscription{ subscriptionId: subs.subscriptionId, startDate: subs.startDate, endDate:''})-[r:ASSOCIATION]-(y:Person {nationalIdentityNumber: subs.nationalIdentityNumber, name: subs.name, surname: subs.surname, fathername: subs.fathername , nationality: subs.nationality, passportNo: subs.passportNo, birthdate: subs.birthdate})
END)
RETURN y