OVH Cloud OVH Cloud

"parallélisation" ...

7 réponses
Avatar
Eric Beaumard
Bonjour


Imaginons que j'ai une table de course de cheveaux
contenant les champs suivants:

C0: une clef primaire (un entier)
C1: l'Id de la course (un entier identifiant une course)
C2: un entier identifiant les chevaux au départ de la course

Donc par exemple pour une table
constituée de deux courses l'une de 4 partants (cheveaux
43,2,56,113) et l'autre
de 5 partants (cheveaux 1,9,55,12,3) on a ça:


C0 C1 C2
1 1 43
2 1 2
3 1 56
4 1 113
5 2 1
6 2 9
7 2 55
8 2 12
9 2 3

Je voudrais contruire une table qui "parallélise" cette
table pour avoir à chaque ligne toutes les donnés d'une course.
Je sais le faire pour des courses d'un même nombre de partants
mais pas quand ils sont inégaux. Chaque ligne serait donc constituée
des numéros des cheveaux au départ de la course en question
avec des 0 (par exemple) pour les cheveaux inexistants (il n'y a jamais
plus de 20 partants par course). Soit N1 à N20 les champs des noms
de ma nouvelle table, ça donnerait (ID serait le numéro de la course):

ID N1 N2 N3 N4 N5 N6 ....... N19 N20
1 43 2 56 113 0 0 0 0
2 1 9 55 12 3 0 0 0

Une requête SQL peut-elle faire ça ou faut-il
passer par VB ?


Cordialement

Eric

7 réponses

Avatar
Thom
Salut,
Je penses que tu peux faire ça avec une requête d'analyse croisée

Bye,
Thom

"Eric Beaumard" a écrit dans le message de news:
45261ed8$0$26651$
Bonjour


Imaginons que j'ai une table de course de cheveaux
contenant les champs suivants:

C0: une clef primaire (un entier)
C1: l'Id de la course (un entier identifiant une course)
C2: un entier identifiant les chevaux au départ de la course

Donc par exemple pour une table
constituée de deux courses l'une de 4 partants (cheveaux
43,2,56,113) et l'autre
de 5 partants (cheveaux 1,9,55,12,3) on a ça:


C0 C1 C2
1 1 43
2 1 2
3 1 56
4 1 113
5 2 1
6 2 9
7 2 55
8 2 12
9 2 3

Je voudrais contruire une table qui "parallélise" cette
table pour avoir à chaque ligne toutes les donnés d'une course.
Je sais le faire pour des courses d'un même nombre de partants
mais pas quand ils sont inégaux. Chaque ligne serait donc constituée
des numéros des cheveaux au départ de la course en question
avec des 0 (par exemple) pour les cheveaux inexistants (il n'y a jamais
plus de 20 partants par course). Soit N1 à N20 les champs des noms
de ma nouvelle table, ça donnerait (ID serait le numéro de la course):

ID N1 N2 N3 N4 N5 N6 ....... N19 N20
1 43 2 56 113 0 0 0 0
2 1 9 55 12 3 0 0 0

Une requête SQL peut-elle faire ça ou faut-il
passer par VB ?


Cordialement

Eric










Avatar
Eric Beaumard
Merci pour l'info. Mais comment on procède ?

Eric
"Thom" a écrit dans le message de news:
Oi%
Salut,
Je penses que tu peux faire ça avec une requête d'analyse croisée

Bye,
Thom

"Eric Beaumard" a écrit dans le message de news:
45261ed8$0$26651$
Bonjour


Imaginons que j'ai une table de course de cheveaux
contenant les champs suivants:

C0: une clef primaire (un entier)
C1: l'Id de la course (un entier identifiant une course)
C2: un entier identifiant les chevaux au départ de la course

Donc par exemple pour une table
constituée de deux courses l'une de 4 partants (cheveaux
43,2,56,113) et l'autre
de 5 partants (cheveaux 1,9,55,12,3) on a ça:


C0 C1 C2
1 1 43
2 1 2
3 1 56
4 1 113
5 2 1
6 2 9
7 2 55
8 2 12
9 2 3

Je voudrais contruire une table qui "parallélise" cette
table pour avoir à chaque ligne toutes les donnés d'une course.
Je sais le faire pour des courses d'un même nombre de partants
mais pas quand ils sont inégaux. Chaque ligne serait donc constituée
des numéros des cheveaux au départ de la course en question
avec des 0 (par exemple) pour les cheveaux inexistants (il n'y a jamais
plus de 20 partants par course). Soit N1 à N20 les champs des noms
de ma nouvelle table, ça donnerait (ID serait le numéro de la course):

ID N1 N2 N3 N4 N5 N6 ....... N19 N20
1 43 2 56 113 0 0 0 0
2 1 9 55 12 3 0 0 0

Une requête SQL peut-elle faire ça ou faut-il
passer par VB ?


Cordialement

Eric














Avatar
Thom
A la création d'une nouvelle requête, un assistant te demande quel type de
requête du veux. Choisi Requête d'analyse croisée. Place C1 en ligne, c0 en
colonne et prend le regroupe tes C2 en choisissant le Premier(comme tu n'as
qu'une occurence dan ton regrouppement, ça ne pose aps de problème)

Toute fois la structure de ta table pose problème, ta clé devrait être C0 et
C1 et tes données devrait ressembler a ca:
C0 C1 C2
1 1 43
2 1 2
3 1 56
4 1 113
1 2 1
2 2 9
3 2 55
4 2 12
... et si tu veux avoir les autre course tu peux rajouter :
5 1 0
6 1 0
5 2 0
6 2 0
etc...

Ami turfiste, bonnes courses!



"Eric Beaumard" a écrit dans le message de news:
45266c9c$0$1471$
Merci pour l'info. Mais comment on procède ?

Eric
"Thom" a écrit dans le message de news:
Oi%
Salut,
Je penses que tu peux faire ça avec une requête d'analyse croisée

Bye,
Thom

"Eric Beaumard" a écrit dans le message de news:
45261ed8$0$26651$
Bonjour


Imaginons que j'ai une table de course de cheveaux
contenant les champs suivants:

C0: une clef primaire (un entier)
C1: l'Id de la course (un entier identifiant une course)
C2: un entier identifiant les chevaux au départ de la course

Donc par exemple pour une table
constituée de deux courses l'une de 4 partants (cheveaux
43,2,56,113) et l'autre
de 5 partants (cheveaux 1,9,55,12,3) on a ça:


C0 C1 C2
1 1 43
2 1 2
3 1 56
4 1 113
5 2 1
6 2 9
7 2 55
8 2 12
9 2 3

Je voudrais contruire une table qui "parallélise" cette
table pour avoir à chaque ligne toutes les donnés d'une course.
Je sais le faire pour des courses d'un même nombre de partants
mais pas quand ils sont inégaux. Chaque ligne serait donc constituée
des numéros des cheveaux au départ de la course en question
avec des 0 (par exemple) pour les cheveaux inexistants (il n'y a jamais
plus de 20 partants par course). Soit N1 à N20 les champs des noms
de ma nouvelle table, ça donnerait (ID serait le numéro de la course):

ID N1 N2 N3 N4 N5 N6 ....... N19 N20
1 43 2 56 113 0 0 0 0
2 1 9 55 12 3 0 0 0

Une requête SQL peut-elle faire ça ou faut-il
passer par VB ?


Cordialement

Eric


















Avatar
Eric Beaumard
Merci pour tes explications Thom mais j'avoue ne pas comprendre
la phrase "c0 en colonne et prend le regroupe tes C2 en choisissant
le Premier". Tu as dû taper un peu trop vite.

Eric


"Thom" a écrit dans le message de news:

A la création d'une nouvelle requête, un assistant te demande quel type de
requête du veux. Choisi Requête d'analyse croisée. Place C1 en ligne, c0 en
colonne et prend le regroupe tes C2 en choisissant le Premier(comme tu n'as
qu'une occurence dan ton regrouppement, ça ne pose aps de problème)

Toute fois la structure de ta table pose problème, ta clé devrait être C0
et C1 et tes données devrait ressembler a ca:
C0 C1 C2
1 1 43
2 1 2
3 1 56
4 1 113
1 2 1
2 2 9
3 2 55
4 2 12
... et si tu veux avoir les autre course tu peux rajouter :
5 1 0
6 1 0
5 2 0
6 2 0
etc...

Ami turfiste, bonnes courses!



"Eric Beaumard" a écrit dans le message de news:
45266c9c$0$1471$
Merci pour l'info. Mais comment on procède ?

Eric
"Thom" a écrit dans le message de news:
Oi%
Salut,
Je penses que tu peux faire ça avec une requête d'analyse croisée

Bye,
Thom

"Eric Beaumard" a écrit dans le message de news:
45261ed8$0$26651$
Bonjour


Imaginons que j'ai une table de course de cheveaux
contenant les champs suivants:

C0: une clef primaire (un entier)
C1: l'Id de la course (un entier identifiant une course)
C2: un entier identifiant les chevaux au départ de la course

Donc par exemple pour une table
constituée de deux courses l'une de 4 partants (cheveaux
43,2,56,113) et l'autre
de 5 partants (cheveaux 1,9,55,12,3) on a ça:


C0 C1 C2
1 1 43
2 1 2
3 1 56
4 1 113
5 2 1
6 2 9
7 2 55
8 2 12
9 2 3

Je voudrais contruire une table qui "parallélise" cette
table pour avoir à chaque ligne toutes les donnés d'une course.
Je sais le faire pour des courses d'un même nombre de partants
mais pas quand ils sont inégaux. Chaque ligne serait donc constituée
des numéros des cheveaux au départ de la course en question
avec des 0 (par exemple) pour les cheveaux inexistants (il n'y a jamais
plus de 20 partants par course). Soit N1 à N20 les champs des noms
de ma nouvelle table, ça donnerait (ID serait le numéro de la course):

ID N1 N2 N3 N4 N5 N6 ....... N19 N20
1 43 2 56 113 0 0 0 0
2 1 9 55 12 3 0 0 0

Une requête SQL peut-elle faire ça ou faut-il
passer par VB ?


Cordialement

Eric






















Avatar
Eric Beaumard
Merci Thom, finallement j'y suis arrivé.
C'est très pratique. Merci encore.

Eric


"Thom" a écrit dans le message de news:

A la création d'une nouvelle requête, un assistant te demande quel type de
requête du veux. Choisi Requête d'analyse croisée. Place C1 en ligne, c0 en
colonne et prend le regroupe tes C2 en choisissant le Premier(comme tu n'as
qu'une occurence dan ton regrouppement, ça ne pose aps de problème)

Toute fois la structure de ta table pose problème, ta clé devrait être C0
et C1 et tes données devrait ressembler a ca:
C0 C1 C2
1 1 43
2 1 2
3 1 56
4 1 113
1 2 1
2 2 9
3 2 55
4 2 12
... et si tu veux avoir les autre course tu peux rajouter :
5 1 0
6 1 0
5 2 0
6 2 0
etc...

Ami turfiste, bonnes courses!



"Eric Beaumard" a écrit dans le message de news:
45266c9c$0$1471$
Merci pour l'info. Mais comment on procède ?

Eric
"Thom" a écrit dans le message de news:
Oi%
Salut,
Je penses que tu peux faire ça avec une requête d'analyse croisée

Bye,
Thom

"Eric Beaumard" a écrit dans le message de news:
45261ed8$0$26651$
Bonjour


Imaginons que j'ai une table de course de cheveaux
contenant les champs suivants:

C0: une clef primaire (un entier)
C1: l'Id de la course (un entier identifiant une course)
C2: un entier identifiant les chevaux au départ de la course

Donc par exemple pour une table
constituée de deux courses l'une de 4 partants (cheveaux
43,2,56,113) et l'autre
de 5 partants (cheveaux 1,9,55,12,3) on a ça:


C0 C1 C2
1 1 43
2 1 2
3 1 56
4 1 113
5 2 1
6 2 9
7 2 55
8 2 12
9 2 3

Je voudrais contruire une table qui "parallélise" cette
table pour avoir à chaque ligne toutes les donnés d'une course.
Je sais le faire pour des courses d'un même nombre de partants
mais pas quand ils sont inégaux. Chaque ligne serait donc constituée
des numéros des cheveaux au départ de la course en question
avec des 0 (par exemple) pour les cheveaux inexistants (il n'y a jamais
plus de 20 partants par course). Soit N1 à N20 les champs des noms
de ma nouvelle table, ça donnerait (ID serait le numéro de la course):

ID N1 N2 N3 N4 N5 N6 ....... N19 N20
1 43 2 56 113 0 0 0 0
2 1 9 55 12 3 0 0 0

Une requête SQL peut-elle faire ça ou faut-il
passer par VB ?


Cordialement

Eric






















Avatar
Eric Beaumard
Ca fonctionne bien mais il me manque un truc.
J'arrive à lancer la requête croisée et ça affiche
une table qui contient bien ce que je veux.
Mais comment en faire une table ?
D'habitude j'utilise "Requete création de table" et
j'obtiens une nouvelle table dans la liste des tables
de la base de donnée.
Là, quand je valide "requête création de table" et indique
un nom de table destination, après avoir validé
Access passe immédiatement en mode de requête "non-croisée".
Comment générer une table (en dur) avec une requête d'analyse croisée ?

Eric
Avatar
Thom
Salut!
En effet, j'ai du me trompé dans l'ordre d'affichage des colonne, mais si tu
t'en es sorti tout seul, c'est cool.

Pour ta requête création de table, je crois que tu as du afficher le
résultat de la requê à l'aide de l'icone en forme de tableau. En fait, il
faut exécuter la reqête pour que la création de table soit vraiment
effective. Cela se fait avec l'icone en forme de point d'exclamation ou dans
le menu "requête/exécuter"

A +

"Eric Beaumard" a écrit dans le message de news:
4528d995$0$285$
Ca fonctionne bien mais il me manque un truc.
J'arrive à lancer la requête croisée et ça affiche
une table qui contient bien ce que je veux.
Mais comment en faire une table ?
D'habitude j'utilise "Requete création de table" et
j'obtiens une nouvelle table dans la liste des tables
de la base de donnée.
Là, quand je valide "requête création de table" et indique
un nom de table destination, après avoir validé
Access passe immédiatement en mode de requête "non-croisée".
Comment générer une table (en dur) avec une requête d'analyse croisée ?

Eric