Хранение квартала и года в базе данных зависит от того, как организованы ваши платежные данные.Примеры будут;сколько различных значений платежа вставляются.Будут ли меняться диапазоны квартала / года?и т. д.
Один из хороших методов «определения» диапазона квартал / год - создание отдельной таблицы с полем «DateTime», которое идентифицирует квартал.Вам не нужно присоединяться к таблице, вам просто нужно заняться программированием на C #, чтобы выяснить, попадает ли диапазон в определенный квартал выплаты.
Например:
Table 1: Payments
-----------------
paymentID (int)
paymentAmount (double(7,2))
paymentDateTime (DateTime)
Table 2: QuarterYear
--------------------
quarterYearID (int)
dateFrom (date)
dateTo (date)
quarter (tinyint)
description (varchar)
Пример данных
paymentID | paymentAmount | paymentDateTime
------------------------------------------------
1 | 20.24 | 2011-04-18 08:14:20
2 | 34.15 | 2011-04-19 07:42:15
3 | 51.87 | 2011-04-20 13:04:22
quarterYearID | dateFrom | dateTo | quarter | description
-----------------------------------------------------------------
1 | 2011-01-01 | 2011-03-31 | 1 | first quarter
2 | 2011-04-01 | 2011-06-30 | 2 | second quarter
3 | 2011-07-01 | 2011-09-31 | 3 | third quarter
4 | 2011-10-01 | 2011-12-31 | 4 | forth quarter
Пример Запрос на получение всех платежей для «квартала 2» dateValue - это динамически извлекаемая переменная из таблицы платежей,C # будет обрабатывать значение dateValue.
SELECT quarter FROM QuarterYear WHERE cast('dateValue' AS date) BETWEEN dateFrom AND dateTo;