Вам нужно немного больше дизайна в ваших таблицах. Первая проблема с вашей идеей (несколько дат в одной ячейке) заключается в том, что вам обязательно будет задана сумма, выплаченная по каждой партии. Фактически, как только это слово «рассрочка» вошло в описание проблемы, это признак того, что вам тоже нужно это обозначить.
К счастью, это именно то, что предназначены для реляционных баз данных, и почему существует такая вещь, которая называется database normalization.
В этом случае это довольно просто: должна быть другая таблица для рассрочек, по крайней мере с датой и суммой, а также ключ, относящийся к исходной таблице, который не должен иметь «даты» и «платный», полей больше.
sales
стол:
ID | Client_ID | Дата продажи | Общая оплата
installments
стол:
ID | Sale_ID | Дата | Сумма
, чтобы получить все даты и суммы для данной записи продажи:
SELECT Date, Amount FROM Installment WHERE Sale_ID=xxx
, чтобы получить сумму уже заплатили:
SELECT Sale.ID, Sale.Client_ID, Sale.Sale_Date, -- other 'sale' fields
SUM(Installment.Amount)
FROM Sale
LEFT JOIN Installment ON (Installment.Sale_ID=Sale.ID)
WHERE Sale.XXXXX -- any criteria for selecting the sale record
, чтобы получить то, что клиент должен вам :
SELECT SUM(Sale.Total_Payment) - SUM(Installment.Amount)
FROM Sale
LEFT JOIN Installment ON (Installment.Sale_ID=Sale.ID)
WHERE Sale.Client_ID=xxxx
Возможно, нормализация будет лучшим решением. –
Не хранить несколько дат в одной ячейке. У вас будут большие проблемы с этим дизайном по дороге. –