J'ai une page qui construit dynamiquement des champs de saisie de formulaires à partir d'une table permettant aux utilisateurs d'entrer des entrées dans le formulaire. Chaque entrée est un champ dans une table _info.transformation de table horizontale à verticale dans SQL Server 2005
Je voudrais rapport montrant toutes les entrées d'un utilisateur dans une ligne. Chaque entrée de champ est une ligne. J'ai donc besoin de prendre les données verticales et de les rendre horizontales. Il existe de nombreuses formes différentes avec des configurations différentes, elles doivent donc être dynamiques. J'ai trouvé beaucoup d'articles pour les pivots de tableau croisé, mais ils ne fonctionnent que pour les aggragates/sommes.
La table Registration_Info a plusieurs entrées pour une soumission de formulaire. Je dois énumérer ces horazontal avec chaque form_field.label comme nom de champ pour signaler.
Ci-dessous est une mise en page de table exemple:
FORM
——————————————
FORM_ID|FORM_NAME
500|“Custom Form 1″
FORM_FIELD
——————————————
FORM_FIELD_ID|FORM_ID|LABEL
1|500|“Field 1″
2|500|“Field 2″
REGISTRATION
——————————————
REG_ID|FORM_ID|USER_ID
23|500|45
24|500|98
REGISTRATION_INFO
——————————————
REG_ID|FORM_FIELD_ID|FIELD_VALUE
23|1|“My Name”
24|2|“My City”
Required Report Output:
REG_ID |Field 1 |Field 2 |FORM_ID |USER_ID
———————————————————————————————
23 |My Name |My City |500 |45
24 |Another Name |Another City |500 |98
Probablement besoin de rendre le résultat final SQL dynamique car le nombre de colonnes pivot sera inconnu. Boucle à travers les champs pour le formulaire spécifié, puis ajouter dans les colonnes pivot. Pivot est la voie à suivre pour la solution générique. – ulty4life
@ ulty4life Vous avez probablement raison, j'ai mis à jour ma réponse pour inclure un PIVOT SQL dynamique. – Taryn