Dans des balises code, chaque colonnes séparées par des tabulations ;)Citation:
(Accessoirement, j'aimerai savoir comment Tofalu a fait la mise en page de son tableau sur son 1er post... )
Version imprimable
Dans des balises code, chaque colonnes séparées par des tabulations ;)Citation:
(Accessoirement, j'aimerai savoir comment Tofalu a fait la mise en page de son tableau sur son 1er post... )
Oui, mais non.
C'est en ligne que je veux mes résultats, pas en colonne (parce que j'ai aussi des catégories de dossiers ):
Il faudrait que je sorte un tableau croisé par rapport à ce que tu me proposes :?Code:
1
2
3
4
5 Cat <120 <240 <480 >480 1 5 2 3 10 2 0 0 4 9 3 1 2 0 0 4 2 3 4 5
Je préférerai plus simple dans le SQL.
Le nombre de colonne est fixe ?
Le nombre de subdivision (<120, <240, ...) oui.
Les axes (catégories ici, mais il peut y en avoir d'autres : pays, entités ...) sont variables selon ce que choisi l'utilisateur.
On peut avoir :
Code:
1
2
3
4
5
6
7 Pays Cat <120 <240 <480 >480 FR 1 5 2 3 10 FR 2 1 3 0 2 FR 4 2 2 7 0 IT 2 0 0 4 9 NZ 3 1 2 0 0 EU 4 2 3 4 5
Mouarf, tu rajoute une hypothèse en plus à chaque message :aie:
Bon, là je vois bien de l'analyse croisée quand même J'ai ajouté le champ pays dans la table des dossiers
Code:
1
2
3
4
5
6 TRANSFORM Count([idDossier]) AS CompteDeidDossier SELECT Pays FROM tblBande, tblDossier WHERE TotalTime>=mini and TotalTime<=maxi GROUP BY Pays PIVOT [LibBande];
Oui, j'ai trouvé aussi...
Ca m'arrange pas des masses :( : il va falloir que je refasse toute la base de la construction du SQL (sachant que j'ai pas que des pays mais aussi 3 autres axes possibles et que l'utilisateur peut filtrer sur n'importe quel axe et accessoirement quelques autres indicateurs à sortir de la même façon ... :aie: ).
C'est pour ça que le coup du iif m'allait bien : ca rendrait parfaitement dans le moule.
Merci.
Si vraiment tu penses que c'est ce qu'il te faut ;)
Code:
1
2
3
4
5
6
7 SELECT Pays, Count(IIF(totalTime between 0 AND 100,1,NULL)) as "0 - 100", Count(IIF(totalTime between 101 AND 200,1,NULL)) as "101 - 200", Count(IIF(totalTime >200,1,NULL)) as " +200" FROM tblDossier GROUP BY PAYS
Ah purée ! Le between ! :arf:
:merci:
ce n'est pas parceque la rédaction vous propose de passer les alpes comme
hannibal ou herzog qu'il est interdit de prendre l'avion
la solution avec une table auxiliaire était infiniment supérieure plus stable et plus modulable
C'est justement ce que je lui ai conseillé dans mes précédents messages. faut tout lire :roll:Citation:
la solution avec une table auxiliaire était infiniment supérieure plus stable et plus modulable
mais j'ai tout lu !
ma remarque prenait justement en compte ta proposition de table auxiliaire que je trouvais parfaite
c'est parceque sous la pression tu as donné une solution moins excellente que je me suis permis cette remarque
courtoisement je n'ajoute pas il faut mieux lire.
cordialement
Je suis tout à fait d'accord sur l'aspect modulable.
Sur l'aspect stabilité, je vois pas de différence entre les 2 solutions.
Enfin, quand à l'intégration dans l'existant, la solution sans table est bien plus rapide.
Surtout qu'avec la solution avec table, je me heurte à d'autres problèmes.
Par exemple : comment faire pour avoir comme ordre de colonnes :
"< 2 h" "<4 h" "<1 j" "<2 j"
et non pas
"<1 j" "< 2 h" "<2 j" "<4 h"
comme me sort le transform.
il suffit de préciser pivot into(liste valeurs dans l'ordre) ou de mettre une clause order by sur les en tête de colonne
le stable est une redondance de modulable j'entends par là qu'un glissement de tranches ne remet pas en cause les requête existantes
Bonjour,
J'ai un soucis avec une requête de ce type, lorsque aucun enregistrement ne correspond au select, sql me renvoie le msg d'erreur suivant :
cannot determine datatype of SQL Column : EXP_1
Est-il possible de contourner ce problème ?
Merci
Thierry