et souhaitez avoir une table comme p> clé 452 est un cas particulier. Actuellement, je fais la rotation dans OLEDB / ATL C ++. Bien qu'il soit assez rapide, je suis toujours curieux. Quelle est l'instruction SQL la plus efficace pour Access 2010 ici? P> P> Unkivot code> est disponible dans MS SQL-Server 2005, mais AFaik non dans MS Access 2010. Comment peut-il être implémenté avec des moyens à bord? Par exemple, j'ai une table
3 Réponses :
Malheureusement, il n'y a pas de moyen facile de le faire avec accès. Vous pouvez le faire en utilisant un Union code> pour obtenir chaque valeur
Donc, il n'y a pas de solution générique? Nous devons utiliser une déclaration dépendante de données?
@Andreas Il n'y a pas de moyen rapide de le faire avec accès qui fait partie de sa chute.
Union code> supprimerait les valeurs non distinctes - pourquoi utiliser
Union tout code>?
@inetphantom Si vous voulez distinct, utilisez l'Union. Cela dépendrait de votre situation et de votre besoin.
Cette requête ...
ID A B C key_field -- - - - --------- 1 x y z 3 2 x y z 57 1 x y z 199 2 x y z 234 1 x y z 452 2 x y z 452
Vous pouvez créer une table auxiliaire avec tous les noms de colonnes comme valeurs (Peut utiliser Excel Copier la première ligne de votre table pour Excel> Coller Spécial> Transpose) P> Li>
Créez dans votre tableau une colonne d'incrément automatique et indexez cette colonne P> li>
Créer une nouvelle critique de jointure croisée comme les suivantes p> li>
SELECT ID, A, B, C , AUX_TABLE.KEY_FIELD , DLookUp("[" & [AUX_TABLE].[KEY_FIELD] & "]","TABLE","[ID] = " & [TABLE].[ID]) AS KEY_VALUE FROM TABLE, AUX_TABLE;