У меня есть требование, которое я пытаюсь выполнить.Если возможно, я бы хотел добиться этого с помощью собственного T-SQL.
У меня есть следующие таблицы:
CUSTOMER
========
ID,
Name
FIELDDEF
========
ID,
Name
FieldType (Char T, N, D for Text, Number or Date)
CUSTOMERFIELD
=============
ID,
CustomerID,
FieldDefID,
CaptureDate,
ValueText,
ValueNumber,
ValueDate
По сути, целью этих таблиц является предоставление расширяемого пользовательскогополевая система.Идея состоит в том, что пользователь создает новые определения полей, которые могут быть текстовым, числовым или датным полем.Затем они создают значения для этих полей в поле ValueText, ValueNumber ИЛИ ValueDate.
Пример:
*Customer*
1,BOB
2,JIM
*FieldDef*
1,Mobile,T
1,DateOfBirth,D
*CustomerField*
ID,CustomerID,FieldDefID,CaptureDate,ValueText,ValueNumber,ValueDate
1,1,1,2011-01-1,07123456789,NULL,NULL
2,1,2,2011-01-1,NULL,NULL,09-DEC-1980
3,1,1,2011-01-2,07123498787,NULL,NULL
Мне нужно создать представление, которое выглядит следующим образом:
*CustomerView*
ID,Name,Mobile,DateOfBirth
1,BOB,07123498787,09-DEC-1980
Обратите внимание, что мобильный телефон Боба является вторым в списке, поскольку он использует самую последнюю дату захвата.
В идеале мне нужно, чтобы это было расширяемым, поэтому, если я создаюновое поле def в будущем, оно автоматически выбирается в CustomerView.
Возможно ли это вообще в T-SQL?
Спасибо,
Саймон.