J'ai deux tables, table1 (Id, date, info1) table2 (Id, date, nvarchar (50) Touche, nvarchar (50) Value)Transposez les valeurs de ligne en colonnes (joindre la table avec un sac de paires de valeurs clés dans T-SQL)
Je voudrais joindre ces tables et obtenir des lignes où chaque valeur dans la colonne Clé est une nouvelle colonne, et les valeurs dans la table de valeurs sont les données dans les lignes.
Exemple:
Table1 ligne:
1, 2010-01-01, 234
table_2 ligne:
1, 2010-01-01, 'TimeToProcess', '15'
1, 2010-01-01, 'ProcessingStatus', 'Complete'
Le résultat souhaité est une ligne comme:
1, 2010-01-01, 234, '15', 'Complete'
Lorsque les têtes de colonne sont (Identifiant, date, info1, Ti meToProcess, ProcessingStatus)
Cette transposition ressemble à PIVOT mais je ne l'ai pas réussi à fonctionner - je suppose - en raison du type nvarchar (50) des colonnes Key, Value et du fait que Je suis obligé d'utiliser une fonction agrégée alors qu'en fait je n'en ai pas besoin.
Je pourrais utiliser des jointures internes pour y parvenir, mais la seule façon de le faire serait de prendre une jointure interne par clé, ce qui dans mon cas équivaut à 6 jointures internes, car c'est le nombre de métriques que j'ai.
Comment est-ce que je peux faire ceci?
Merci, j'ai compris. J'ai eu un petit problème en écrivant l'instruction FOR .. IN() puisque j'ai énuméré les valeurs de chaîne ('value1', 'value2', etc.) et cela n'a pas fonctionné. Le moment où j'ai pris les guillemets sur VOILA! Bien que je ne comprends pas pourquoi. – Rire1979
J'utilise des parenthèses pour qualifier complètement ce qui va devenir un nom de colonne dans mes instructions for: 'FOR IN ([ValueThatWillBecomeAColumnName])' –
Brad