2014-09-04 6 views
-1

Могу ли я сделать это в MySQLMySQL генерировать больше строк, чем Eсть

Имейте эту таблицу

есть 4 невыплаченные долги, и есть в общей сложности 6 Таким образом, первый и второй месяц есть было уделено

Я хочу, чтобы генерировать что-то вроде

id | uid | some date + 3 month 
id | uid | some date + 4 month 
id | uid | some date + 5 month 
id | uid | some date + 6 month 

это можно сделать в SQL?

+0

Короткий ответ: Да (может быть, не простой способ, но это можно сделать). [Вы пробовали что-нибудь?] (Http://whathaveyoutried.com) – Barranka

+0

все, что вы просите, я уверен, что это можно сделать, но я не уверен, что вы спрашиваете - каковы ваши результаты на основе на? 4 строки из-за 4 невыплаченных долгов? как вы знаете, какие месяцы? –

+0

долги всегда выплачиваются в самый ранний месяц, когда он не был уплачен, и да 4 строки b/c 4 невыплаченные долги – Rmxhaha

ответ

0

Если число unpaid_debt ограничено (например, 12 или 24 месяца максимум или даже 100 месяцев), вы можете определить вторую таблицу с id = 1,2,3,4,5 ... Затем присоединитесь к основной таблице с таблицей_2 с условием «... WHERE table_2.id < = n_unpaid_debt». Например:

ВЫБОР t1.id, t1.uid, DATE_ADD (t1.start_date, ИНТЕРВАЛ t2.id МЕСЯЦ) ОТ table_1 t1, t2 table_2 ГДЕ t2.id < = t1.n_unpaid_debt;

+0

Это решение кажется излишним. Не совсем то, что я ищу. Лучше сделать это в php, чем делать это – Rmxhaha

+0

@Rmxhaha, если вы * можете * сделать это в своем интерфейсе, я думаю, что это лучшая идея, чем попытка сделать это с помощью «чистого» sql – Barranka

+0

Если что-то можно сделать в SQL (без использования курсоров или подобных петель), я всегда предпочитаю это. Однако это зависит от личных предпочтений. – i486

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