Таблица:
Я использую MYSQL.
tax_year_end_changes | CREATE TABLE `tax_year_end_changes` (
`id` int(11) NOT NULL auto_increment,
`company_id` int(11) NOT NULL,
`date` date NOT NULL default '1970-01-01',
`reason` enum('Fiscal_Year_End','Control_Change') collate utf8_unicode_ci NOT
NULL default 'Fiscal_Year_End',
`created_at` datetime default NULL,
`updated_at` datetime default NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `company_id` (`company_id`,`date`,`reason`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci |
В этой таблице содержится список конца финансового года для компании.Когда конец финансового года компании изменяется, у таблицы только есть новый конец финансового года.Конец финансового года по умолчанию сохраняется с 1970 года. Изменения сохраняются с даты изменения.Пример данных:
выберите company_id, дату, причину из tax_year_end_changes;
1 1970-12-31 Fiscal_Year_End
1 2011-01-31 Fiscal_Year_End
3 1970-01-31 Fiscal_Year_End
4 1970-11-30 Fiscal_Year_End
Здесь компания 1 имеет конец финансового года с 31 декабря по 2010 год. В 2011 году FYE изменяется на 31 января.Таким образом, для этой компании действительными FYE являются:
31 декабря 2010 г. 31 января 2011 г. 31 января 2012 г.,.
Я хочу создать список действительных FYE с заданным диапазоном дат.В частности,
У меня есть дата начала и количество месяцев.
Я хочу создать что-то вроде:
Вариант использования 1
Start Date: 2010-11-01
Number of Months: 3
company_id, month, tax_year_end_date
4 11 2010-11-30
1 12 2010-12-31
3 01 2011-01-31
1 01 2011-01-31
Вариант использования 2
Start Date: 2011-11-01
Number of Months: 3
company_id, month, tax_year_end_date
4 11 2011-11-30
3 01 2011-01-31
1 01 2011-01-31
Примечания. Обратите внимание, что в случае использования 2 2011-12-31 не отображается для компании 1 какэтот год больше не действителен.