|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : octobre 2011 Messages : 17 ![]() |
Bonjour à vous,
J'aimerais faire une requête d'analyse croisée qui contient plus de 255 colonnes. Je voudrais donc ne prendre en compte que les 255 premiers résultats du pivot, pour cela je voudrais faire une requête du style : ... PIVOT TOP 255 NomChamp; Malheureusement, cette synthaxe ne fonctionne pas. Quelqu'un aurait une idée pour contourner le problème? Merci d'avance! |
|
|
00
|
|
|
#2 |
![]() ![]() Denis Développeur informatique Inscription : août 2004 Messages : 3 206 ![]() |
Salut,
Le [NomChamp] contient quoi comme valeurs ? Est-ce que ces valeurs changent ? Peux-tu donner des exemples de données ? A+
__________________
Merci de ne pas poster sur mon profil pour des problèmes techniques. Pour celà vous pouvez utiliser le forum ou m'envoyer un mp. Bon développement ! Mes tutoriels et contributions sur ma page perso: Ma page personnelle |
|
00
|
|
|
#3 | |
|
Invité de passage
![]() Inscription : octobre 2011 Messages : 17 ![]() |
Citation:
[NomChamp] contiens des noms de paramètres de test, ils diffèrent suivant le test que l'on réalise. En simplifiant, je cross 3 tables: [PART] IDPart identification [PARAMETER] IDParameter label [TEST] IDPart, IDParameter result Et ce que je recherche: Identification | Param1 | Param2 | ... Part1 | val(1,1) | val(1,2) | ... Part2 | val(2,1) | val(2,2) | ... ... Mais biensur, le nombre de paramètres est trop grand pour le moteur de bases de données. J'avais pensé de rajouter un attribut number à PARAMETER pour ajouter un petit PARAMETER.number < 255, mais c'est un peu trop du bricolage à mon goût. D'un autre côté, je ne suis pas obligé de faire un pivot, mais cela me parait plus élégant. |
|
|
|
00
|
|
|
#4 | ||
![]() ![]() Denis Développeur informatique Inscription : août 2004 Messages : 3 206 ![]() |
Re,
Tu peux faire une sous-requête avec Code :
A+
__________________
Merci de ne pas poster sur mon profil pour des problèmes techniques. Pour celà vous pouvez utiliser le forum ou m'envoyer un mp. Bon développement ! Mes tutoriels et contributions sur ma page perso: Ma page personnelle |
||
|
00
|
|
|
#5 |
|
Invité de passage
![]() Inscription : octobre 2011 Messages : 17 ![]() |
J'avoue ne pas trop comprendre ta solution... Tu peux t'expliquer un peu plus clairement?
Merci d'avance |
|
|
00
|
|
|
#6 | ||
![]() ![]() Denis Développeur informatique Inscription : août 2004 Messages : 3 206 ![]() |
En fait,
Il faut que tu créer une requête sélection à partir de tes 3 tables, du style: Code sql :
Et tu base ta requête croisée sur cette requête sélection. Ici je suppose que tes champs IdParameter et IdPart sont du type numérique. A+
__________________
Merci de ne pas poster sur mon profil pour des problèmes techniques. Pour celà vous pouvez utiliser le forum ou m'envoyer un mp. Bon développement ! Mes tutoriels et contributions sur ma page perso: Ma page personnelle |
||
|
00
|
|
|
#7 |
|
Invité de passage
![]() Inscription : octobre 2011 Messages : 17 ![]() |
Ta solution est pas mal sachant que les Parameter.Number sont croissants. Mais maintenant c'est un problème de performances qui se pose. Je crois que je vais rester sur l'idée d'ajouter un attribut qui stocke le numéro incrémenté histoire de ne faire qu'un test d'inégalité dans la clause where plutot qu'un DCount gourmant en ressources...
Pas d'autres idées? |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com