Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Création d'une table

10 réponses
Avatar
panorama102001
Bonsoir =E0 tous,
Je cherche =E0 cr=E9er une table regroupant certains des enregistrements =E0=

partir des 2 tables existantes. Mais je n'arrive pas bien
Et =E0 partir de cette nouvelle table, je voudrais faire une analyse
crois=E9e avec le calcul Compte (valeur) et Somme (valeur) =E0 la fois
( comme TCD de Excel). Est-ce possible ?

Merci de votre aide

10 réponses

Avatar
Richard_35
Bonjour Panorama,

C'est possible mais il faudrait que tu donnes plus d'information.
Au moins les clés uniques de tes 2 tables (TableA et TableB) à
regrouper, ainsi que les champs de liaison entre ces 2 tables.
Ensuite, tu pourras créer une requête "création de table" qui lie TableA
et TableB pour créer une TableC contenant des informations de TableA et
TableB.
Nous verrons, par la suite, ton besoin d'analyse croisée, si tu veux
bien.

A bientôt,
Richard.

a écrit dans le message de news:

Bonsoir à tous,
Je cherche à créer une table regroupant certains des enregistrements à
partir des 2 tables existantes. Mais je n'arrive pas bien
Et à partir de cette nouvelle table, je voudrais faire une analyse
croisée avec le calcul Compte (valeur) et Somme (valeur) à la fois
( comme TCD de Excel). Est-ce possible ?

Merci de votre aide
Avatar
panorama102001
Bonjour Richard,
Dans les 2 tables A et B, j'ai la notion Date, Code ,montant et réf
pointage

Je voudrais ramener dans la nouvelle table, les enregistrements des
tables A et B dont la zone Pointage est non vide








On 12 avr, 09:38, "Richard_35" wrote:
    Bonjour Panorama,

    C'est possible mais il faudrait que tu donnes plus d'information.
    Au moins les clés uniques de tes 2 tables (TableA et TableB) à
regrouper, ainsi que les champs de liaison entre ces 2 tables.
    Ensuite, tu pourras créer une requête "création de table" qu i lie TableA
et TableB pour créer une TableC contenant des informations de TableA et
TableB.
    Nous verrons, par la suite, ton besoin d'analyse croisée, si tu veux
bien.

    A bientôt,
    Richard.

a écrit dans le message de news:

Bonsoir à tous,
Je cherche à créer une table regroupant certains des enregistrements à
partir des 2 tables existantes. Mais je n'arrive pas bien
Et à partir de cette nouvelle table, je voudrais faire une analyse
croisée avec le calcul Compte  (valeur) et Somme (valeur) à la fois
( comme TCD de Excel). Est-ce possible ?

Merci de votre aide


Avatar
Michel_D
Bonjour,

Avec une requête union tu peux regrouper les enregistrements issus des
2 tables et donc pas besoin de créer de table.

Ensuite tu base ta requête d'analyse croisée sur la requête union que
tu viens de réaliser.

Pour sélectionner les enregistrements non vide :

SELECT DateEnr, Code, montant, [réf pointage]
FROM tableA
WHERE [réf pointage] Is Not NULL
UNION
SELECT DateEnr, Code, montant, [réf pointage]
FROM tableB
WHERE [réf pointage] Is Not NULL



Bonjour Richard,
Dans les 2 tables A et B, j'ai la notion Date, Code ,montant et réf
pointage

Je voudrais ramener dans la nouvelle table, les enregistrements des
tables A et B dont la zone Pointage est non vide


Avatar
panorama102001
Bonjour Michel

La requête Union a marché, mais elle ne ramène pas tous les
enregistrements dont la zone pointage est non vide, mais uniquement
les enregistrements communs des 2 tables A et B ( l'analyse croisée
ne donne pas l'écart, or il y a des écarts )

Et pourquoi je ne peux pas exporter le résultat de la requête Union
vers excel ( par liaison office, excel). J'ai un message comme quoi il
y a trop de lignes. Il n'y a que ~32000 lignes ?

Merci pour ton aide







On 12 avr, 11:23, Michel_D
wrote:
Bonjour,

Avec une requête union tu peux regrouper les enregistrements issus des
  2 tables et donc pas besoin de créer de table.

Ensuite tu base ta requête d'analyse croisée sur la requête union qu e
  tu viens de réaliser.

Pour sélectionner les enregistrements non vide :

SELECT DateEnr, Code, montant, [réf pointage]
FROM tableA
WHERE [réf pointage] Is Not NULL
UNION
SELECT DateEnr, Code, montant, [réf pointage]
FROM tableB
WHERE [réf pointage] Is Not NULL




Bonjour Richard,
Dans les 2 tables A et B, j'ai la notion Date, Code ,montant et réf
pointage

Je voudrais ramener dans la nouvelle table, les enregistrements des
tables A et B dont la zone Pointage est non vide- Masquer le texte des m essages précédents -


- Afficher le texte des messages précédents -



Avatar
Michel_D
re,

Bonjour Michel

La requête Union a marché, mais elle ne ramène pas tous les
enregistrements dont la zone pointage est non vide, mais uniquement
les enregistrements communs des 2 tables A et B ( l'analyse croisée
ne donne pas l'écart, or il y a des écarts )


Si tu veux tous les enregistrements des 2 tables, rajoute à la requête
union un champ qui identifiera l'origine des enregistrements.

Et pourquoi je ne peux pas exporter le résultat de la requête Union
vers excel ( par liaison office, excel). J'ai un message comme quoi il
y a trop de lignes. Il n'y a que ~32000 lignes ?


Essaye d'exporter via une requête intermédiaire :

SELECT *
FROM TaRequeteUnion;

Merci pour ton aide

On 12 avr, 11:23, Michel_D
wrote:
Bonjour,

Avec une requête union tu peux regrouper les enregistrements issus des
2 tables et donc pas besoin de créer de table.

Ensuite tu base ta requête d'analyse croisée sur la requête union que
tu viens de réaliser.

Pour sélectionner les enregistrements non vide :



Essaye comme ceci :

SELECT DateEnr, Code, montant, [réf pointage], "TableA" AS Origine
FROM tableA
WHERE [réf pointage] Is Not NULL
UNION
SELECT DateEnr, Code, montant, [réf pointage], "TableB"
FROM tableB
WHERE [réf pointage] Is Not NULL;






Bonjour Richard,
Dans les 2 tables A et B, j'ai la notion Date, Code ,montant et réf
pointage
Je voudrais ramener dans la nouvelle table, les enregistrements des
tables A et B dont la zone Pointage est non vide- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -







Avatar
panorama102001
Bonjour Michel, Richard et à tous

Pourriez-vous me dire si c'est possible dans une requête analyse
croisée de faire Compte (valeur) et Somme (valeur) en même temps?

Merci d'avance







On 12 avr, 14:48, Michel_D
wrote:
re,


Bonjour Michel

La requête Union a marché, mais elle ne ramène pas tous les
enregistrements dont la zone pointage est non vide, mais uniquement
les enregistrements communs des 2 tables A et B  ( l'analyse croisée
ne donne pas l'écart, or il y a des écarts )


Si tu veux tous les enregistrements des 2 tables, rajoute à la requête
  union un champ qui identifiera l'origine des enregistrements.

Et pourquoi je ne peux pas exporter le résultat de la requête Union
vers excel ( par liaison office, excel). J'ai un message comme quoi il
y a trop de lignes. Il n'y a que ~32000 lignes ?


Essaye d'exporter via une requête intermédiaire :

SELECT *
FROM TaRequeteUnion;

Merci pour ton aide

On 12 avr, 11:23, Michel_D
wrote:
Bonjour,

Avec une requête union tu peux regrouper les enregistrements issus de s
  2 tables et donc pas besoin de créer de table.

Ensuite tu base ta requête d'analyse croisée sur la requête union que
  tu viens de réaliser.

Pour sélectionner les enregistrements non vide :



Essaye comme ceci :

SELECT DateEnr, Code, montant, [réf pointage], "TableA" AS Origine
FROM tableA
WHERE [réf pointage] Is Not NULL
UNION
SELECT DateEnr, Code, montant, [réf pointage], "TableB"
FROM tableB
WHERE [réf pointage] Is Not NULL;






Bonjour Richard,
Dans les 2 tables A et B, j'ai la notion Date, Code ,montant et réf
pointage
Je voudrais ramener dans la nouvelle table, les enregistrements des
tables A et B dont la zone Pointage est non vide- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -- Masquer le texte des messages précédents -




- Afficher le texte des messages précédents -





Avatar
Michel_D
Bonjour,

A priori oui, il faut juste que la source se présente d'une certaine
manière, c'est à dire un champ (qui sera le pivot) qui définit si
c'est un Compte ou une Somme et le champ qui liste les valeurs.

Exemple de source (table ou requête) :

ChampRegroupement,ChampPivot, ChampValeur
"A", "Compte", 1
"A", "Somme", 2
"B", "Compte", 3
"B", "Somme", 4

Soit donc la requête d'analyse croisée qui donne ce que tu demande :

TRANSFORM First(ChampValeur) AS Valeur1
SELECT ChampRegroupement
FROM LaSource
GROUP BY ChampRegroupement
PIVOT ChampPivot;


Bonjour Michel, Richard et à tous

Pourriez-vous me dire si c'est possible dans une requête analyse
croisée de faire Compte (valeur) et Somme (valeur) en même temps?

Merci d'avance







On 12 avr, 14:48, Michel_D
wrote:
re,


Bonjour Michel
La requête Union a marché, mais elle ne ramène pas tous les
enregistrements dont la zone pointage est non vide, mais uniquement
les enregistrements communs des 2 tables A et B ( l'analyse croisée
ne donne pas l'écart, or il y a des écarts )
Si tu veux tous les enregistrements des 2 tables, rajoute à la requête

union un champ qui identifiera l'origine des enregistrements.

Et pourquoi je ne peux pas exporter le résultat de la requête Union
vers excel ( par liaison office, excel). J'ai un message comme quoi il
y a trop de lignes. Il n'y a que ~32000 lignes ?
Essaye d'exporter via une requête intermédiaire :


SELECT *
FROM TaRequeteUnion;

Merci pour ton aide
On 12 avr, 11:23, Michel_D
wrote:
Bonjour,
Avec une requête union tu peux regrouper les enregistrements issus des
2 tables et donc pas besoin de créer de table.
Ensuite tu base ta requête d'analyse croisée sur la requête union que
tu viens de réaliser.
Pour sélectionner les enregistrements non vide :
Essaye comme ceci :



SELECT DateEnr, Code, montant, [réf pointage], "TableA" AS Origine
FROM tableA
WHERE [réf pointage] Is Not NULL
UNION
SELECT DateEnr, Code, montant, [réf pointage], "TableB"
FROM tableB
WHERE [réf pointage] Is Not NULL;





Bonjour Richard,
Dans les 2 tables A et B, j'ai la notion Date, Code ,montant et réf
pointage
Je voudrais ramener dans la nouvelle table, les enregistrements des
tables A et B dont la zone Pointage est non vide- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -










Avatar
Richard_35
Bonjour Panorama,

A ma connaissance, le mot clé TRANSFORM des requêtes "analyse croisée"
n'accepte qu'un seul paramètre, donc Compte(valeur) ou Somme(valeur).
A confirmer par les MVP spécialistes et compétents, s'il "leur" plaît...

Je viens de revenir et je voulais te signaler qu'il me paraît très
hasardeux et dangereux de lier des tables par des Montants.
Ton champ "Référence pointage" est-il une clé unique de ta TableA et/ou
ta TableB ?

Tes problèmes précédents sont-ils résolus (requête UNION) ?

Dis-nous.
A bientôt,
Richard.

a écrit dans le message de news:

Bonjour Michel, Richard et à tous

Pourriez-vous me dire si c'est possible dans une requête analyse
croisée de faire Compte (valeur) et Somme (valeur) en même temps?

Merci d'avance


On 12 avr, 14:48, Michel_D
wrote:
re,


Bonjour Michel

La requête Union a marché, mais elle ne ramène pas tous les
enregistrements dont la zone pointage est non vide, mais uniquement
les enregistrements communs des 2 tables A et B ( l'analyse croisée
ne donne pas l'écart, or il y a des écarts )


Si tu veux tous les enregistrements des 2 tables, rajoute à la requête
union un champ qui identifiera l'origine des enregistrements.

Et pourquoi je ne peux pas exporter le résultat de la requête Union
vers excel ( par liaison office, excel). J'ai un message comme quoi il
y a trop de lignes. Il n'y a que ~32000 lignes ?


Essaye d'exporter via une requête intermédiaire :

SELECT *
FROM TaRequeteUnion;

Merci pour ton aide

On 12 avr, 11:23, Michel_D
wrote:
Bonjour,

Avec une requête union tu peux regrouper les enregistrements issus des
2 tables et donc pas besoin de créer de table.

Ensuite tu base ta requête d'analyse croisée sur la requête union que
tu viens de réaliser.

Pour sélectionner les enregistrements non vide :



Essaye comme ceci :

SELECT DateEnr, Code, montant, [réf pointage], "TableA" AS Origine
FROM tableA
WHERE [réf pointage] Is Not NULL
UNION
SELECT DateEnr, Code, montant, [réf pointage], "TableB"
FROM tableB
WHERE [réf pointage] Is Not NULL;






Bonjour Richard,
Dans les 2 tables A et B, j'ai la notion Date, Code ,montant et réf
pointage
Je voudrais ramener dans la nouvelle table, les enregistrements des
tables A et B dont la zone Pointage est non vide- Masquer le texte des
messages précédents -
- Afficher le texte des messages précédents -- Masquer le texte des

messages précédents -



- Afficher le texte des messages précédents -





Avatar
panorama102001
Re,

La requête Union a bien fonctionné. J'ai simplement ajouté le prédic at
ALL à l'opération UNION ( j'avais lu ça dans l'aide de ACCESS), et
j'ai bien obtenu le résultat fusionné des 2 tables comme je souhaitais

Par contre, je n'avais pas du tout compris la suggestion de Michel
avec le champ Pivot pour avoir à la fois le Compte et la Somme dans ma
requête analyse croisée. :-(
Je me contenterai d'exécuter cette requête en 2 fois , et ce n'est pas
plus long !

Merci Richard et encore merci Michel pour votre aide



On 13 avr, 12:56, "Richard_35" wrote:
    Bonjour Panorama,

    A ma connaissance, le mot clé TRANSFORM des requêtes "analyse croisée"
n'accepte qu'un seul paramètre, donc Compte(valeur) ou Somme(valeur).
    A confirmer par les MVP spécialistes et compétents, s'il "leur " plaît...

    Je viens de revenir et je voulais te signaler qu'il me paraît tr ès
hasardeux et dangereux de lier des tables par des Montants.
    Ton champ "Référence pointage" est-il une clé unique de ta T ableA et/ou
ta TableB ?

    Tes problèmes précédents sont-ils résolus (requête UNION ) ?

    Dis-nous.
    A bientôt,
    Richard.

a écrit dans le message de news:

Bonjour Michel, Richard et à tous

Pourriez-vous me dire si c'est possible dans une requête analyse
croisée de faire Compte (valeur) et Somme (valeur) en même temps?

Merci d'avance

On 12 avr, 14:48, Michel_D
wrote:



re,



Bonjour Michel

La requête Union a marché, mais elle ne ramène pas tous les
enregistrements dont la zone pointage est non vide, mais uniquement
les enregistrements communs des 2 tables A et B ( l'analyse croisée
ne donne pas l'écart, or il y a des écarts )


Si tu veux tous les enregistrements des 2 tables, rajoute à la requê te
union un champ qui identifiera l'origine des enregistrements.

Et pourquoi je ne peux pas exporter le résultat de la requête Unio n
vers excel ( par liaison office, excel). J'ai un message comme quoi il
y a trop de lignes. Il n'y a que ~32000 lignes ?


Essaye d'exporter via une requête intermédiaire :

SELECT *
FROM TaRequeteUnion;

Merci pour ton aide

On 12 avr, 11:23, Michel_D
wrote:
Bonjour,

Avec une requête union tu peux regrouper les enregistrements issus des
2 tables et donc pas besoin de créer de table.

Ensuite tu base ta requête d'analyse croisée sur la requête uni on que
tu viens de réaliser.

Pour sélectionner les enregistrements non vide :



Essaye comme ceci :

SELECT DateEnr, Code, montant, [réf pointage], "TableA" AS Origine
FROM tableA
WHERE [réf pointage] Is Not NULL
UNION
SELECT DateEnr, Code, montant, [réf pointage], "TableB"
FROM tableB
WHERE [réf pointage] Is Not NULL;



Bonjour Richard,
Dans les 2 tables A et B, j'ai la notion Date, Code ,montant et ré f
pointage
Je voudrais ramener dans la nouvelle table, les enregistrements des
tables A et B dont la zone Pointage est non vide- Masquer le texte d es
messages précédents -
- Afficher le texte des messages précédents -- Masquer le texte d es

messages précédents -



- Afficher le texte des messages précédents -- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -






Avatar
Michel_D
re,

1) Par défaut c'est le prédicat ALL qui s'applique, donc ...

2) Vu que tu ne dis pas par rapport à quoi tu souhaite réaliser tes
compte et tes sommes cela va être dur de t'aider, mais ce que j'ai
voulu te dire c'est que pour avoir une représentation horizontale
comme tu veux, il faut que la source se présente sous forme de liste
comme ceci :

ChampRegroupement,ChampPivot, ChampValeur
"A", "Compte", 1
"A", "Somme", 2
"B", "Compte", 3
"B", "Somme", 4

Soit donc la requête d'analyse croisée qui donne ce que tu demande :

TRANSFORM First(ChampValeur) AS Valeur1
SELECT ChampRegroupement
FROM LaSource
GROUP BY ChampRegroupement
PIVOT ChampPivot;


et pour avoir la source, tu utilise une requête union comme par exemple
pour avoir tes comptes et sommes par rapport au champ "Code" :

SELECT Code, "Compte" AS ChPivot, Count(montant) AS ChVal, "A" AS Origine
FROM tableA
WHERE [réf pointage] Is Not NULL
GROUP BY Code
UNION
SELECT Code, "Somme", Sum(montant), "A"
FROM tableA
WHERE [réf pointage] Is Not NULL
GROUP BY Code
UNION
SELECT Code, "Compte", Count(montant), "B"
FROM tableB
WHERE [réf pointage] Is Not NULL
GROUP BY Code
UNION
SELECT Code, "Somme", Sum(montant), "B"
FROM tableB
WHERE [réf pointage] Is Not NULL
GROUP BY Code;


Re,

La requête Union a bien fonctionné. J'ai simplement ajouté le prédicat
ALL à l'opération UNION ( j'avais lu ça dans l'aide de ACCESS), et
j'ai bien obtenu le résultat fusionné des 2 tables comme je souhaitais

Par contre, je n'avais pas du tout compris la suggestion de Michel
avec le champ Pivot pour avoir à la fois le Compte et la Somme dans ma
requête analyse croisée. :-(
Je me contenterai d'exécuter cette requête en 2 fois , et ce n'est pas
plus long !

Merci Richard et encore merci Michel pour votre aide


[...]

SELECT DateEnr, Code, montant, [réf pointage], "TableA" AS Origine
FROM tableA
WHERE [réf pointage] Is Not NULL
UNION
SELECT DateEnr, Code, montant, [réf pointage], "TableB"
FROM tableB
WHERE [réf pointage] Is Not NULL;