Моя текущая схема выглядит следующим образом:Сведение 1-ко-многим
PersonType (PersonTypeID, Name, Description)
Person (PersonID,PersonTypeID, FirstName, ...)
PersonDynamicField (PersonDynamicFieldID, PersonTypeID, Name, Description, DataType, DefaultValue, ...)
PersonDynamicFieldValue (PersonDynamicFieldValueID, PersonDynamicFieldID, PersonID, Value, ...)
То есть, человек определенного типа. Например, Клиент. Для каждого PersonType
можно динамически добавлять дополнительные поля для хранения около PersonType. Для Клиента нам может понадобиться добавить поля в PersonDynamicField, такие как LikesChocolate, FavoriteColor, HappinessScale и т. Д. Затем значение для этих полей будет сохранено в PersonDynamicFieldValue.
Надеюсь, что мое письмо имеет смысл.
То, что я хотел бы сделать, это запрос, который может сгладить эту структуру и возвращает результат, глядя, как это:
PersonID, PersonTypeID, FirstName, LikesChocolate, FavoriteColor, HappinessScale
1, 2, Robert, 1, Green, 9
2, 2, John, 0, Orange, 5
...
Я вроде застрял и не знаю, где даже начать ,
Вы можете помочь?
Большое спасибо @bluefeet. Это то, что я искал, и делает то, что мне нужно. Только одно: не могли бы вы кратко объяснить заявление, начинающееся с «Select @cols ...»? Я знаю, что он делает, но не совсем понимаю, как это сделать. Спасибо. – PostureOfLearning
@Rob Это генерирует список различных имен полей для каждого идентификатора типа лица. При использовании PIVOT столбцы должны быть известны во время выполнения, поэтому строка кода создает список имен столбцов. – Taryn