Requête microsoft query regroupement de certaines colonnes de 2 tables

  • Initiateur de la discussion Initiateur de la discussion poulie
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

poulie

XLDnaute Impliqué
Bonjour à tous,

Je rencontre un souci de rédaction de requête et malgré plusieurs essais je n'obtiens pas le résultat souhaité. D'où cette demande...
Dans un classeur j'ai 2 feuilles avec 1 tableau dans chaque avec des noms de champs identiques ou pas. Dans l'exemple joint, chaque table a des champs identiques.
Je souhaite avec Microsoft Query extraire un seul champ dates avec toutes les dates des 2 tables et extraire les colonnes sommes correspondantes. Je pense mieux préciser ma demande dans le classeur joint.
J'ai tenté avec UNION sans succès. L'objectif étant de créer un TCD.

Merci de ce que vous pourrez faire.
 

Pièces jointes

Re : Requête microsoft query regroupement de certaines colonnes de 2 tables

Re,

J'ai ajouté au tableau extrait, 2 colonnes avec une formule conditionnelle de ce type: =SI([@[Véhicules<=6]]=0;"";[@[Véhicules<=6]])
Et lorsque je créé le TCD, même problème. Ou alors il faudrait que je modifie la requête?. C'est à dire ajouter une condition > 0 dans ce texte: (Véhicules*-(Véhicules<=6)) AS ?.
Mais pas dans celui-ci : (Véhicules*-(Véhicules>6) )AS car déjà supérieur à 0?

Sinon Véhicules* avec l'astérisque veut bien dire toutes les cellules de la colonne?

Je ne vois pas trop.

Merci
 
Re : Requête microsoft query regroupement de certaines colonnes de 2 tables

RE
Re,

On va bien finir par s'en sortir de cette histoire. Alors MSQUERY sur feuille Excel nommée "Source" et dans le même classeur. Ceci fonctionne, MSQUERY m'a simplement signalé l'obligation de mettre des Crochets pour le champ AS `Vehicules<=6`. J'ai donc mis AS [Vehicules<=6]
Code:
SELECT `Source$`.Dates, `Source$`.`Km arrivée`, (Véhicules*-(Véhicules<=6)) AS [Véhicules<=6], (Véhicules*-(Véhicules>6) )AS [Véhicules>6]
FROM `C:\.......\h_Poulie.xlsx`.`Source$` `Source$`

A+
P.S. ai utilisé le bouton SQL dans MSQUERY pour écrire la requête.

Yesssssssssss

Msquery ne me signalait rien du tout mais avec les crochets cela marche !
 
Re : Requête microsoft query regroupement de certaines colonnes de 2 tables

Bonjour
...
CHRIS: J'avais en effet pensé à distinguer les types de véhicules en 2 colonnes. Mais je ne souhaitais pas trop alourdir le tableau source et faciliter la saisie. J'ai donc testé avec 2 colonnes et les 2 types de véhicules. Pour les véhicules de type 1, j'ai là aussi la somme alors qu'il n'y a pas de zéros?...

Je parlais de la ventilation via Msquery pas de la source initiale mais sans celle-ci, difficile de comparer à tes résultats
 
Re : Requête microsoft query regroupement de certaines colonnes de 2 tables

Re,

Hello Chris🙂 : tant mieux🙂


Poulie à dit:
Sinon Véhicules* avec l'astérisque veut bien dire toutes les cellules de la colonne?
Pas du tout, dans un champ calculé c'est l'opérateur de multiplication.
Véhicules<=6 renverra pour chaque ligne Vrai (Vrai = -1) ou Faux (Faux = 0)
Donc -(Véhicules<=6) renverra soit --1 (donc 1), soit -0 (donc 0)
Donc
(Véhicules*-(Véhicules<=6)) :nombre contenu dans le champ Véhicule mutliplié soit par 0 (donc 0) soit par 1 (donc contenu du champ)

Pour ton TCD j'ai bien peur que cela ne soit pas possible. A moins que Chris ne trouve une solution.

A+
 
Re : Requête microsoft query regroupement de certaines colonnes de 2 tables

Re,

J'ai trouvé la source : voici ma requête (avec un As Type, merci Hasco 😉)
Code:
SELECT `Source$`.Dates, `Source$`.`Km en charge`, `Source$`.Véhicules, '<=6' as [type]  FROM `E:\ZZ_Tempo\Forums\Essai-2Msquery.xlsx`.`Source$` `Source$` where `Source$`.`Véhicules`<=6 union  all SELECT `Source$`.Dates, `Source$`.`Km en charge`, `Source$`.Véhicules, '>6' as [type]  FROM `E:\ZZ_Tempo\Forums\Essai-2Msquery.xlsx`.`Source$` `Source$` where `Source$`.`Véhicules`>6

Je ne sais plus si, comme dans Access mais pas SqlServer, on peut mettre la condition directement dans le champ d'où l'union.

Edit : si on peut
Code:
SELECT `Source$`.Dates, `Source$`.`Km en charge`, `Source$`.Véhicules, iif(`Source$`.Véhicules<=6,'<=6','>6') as [type]  FROM `E:\ZZ_Tempo\Forums\Essai-2Msquery.xlsx`.`Source$` `Source$`
 

Pièces jointes

Dernière édition:
Re : Requête microsoft query regroupement de certaines colonnes de 2 tables

Re,

Donc vois ma toute dernière requête au #21 et le fichier Excel (qui contient l'avant dernière mais le résultat est le même : c'est juste plus court)
 
Re : Requête microsoft query regroupement de certaines colonnes de 2 tables

Re,

Hello, Chris🙂 Peut s'écrire avec une condition dans le champ:

SELECT `Source$`.Dates, `Source$`.`Km en charge`, `Source$`.Véhicules,IIF(`Source$`.Véhicules<=6,'<=6','>6') AS [Type]
FROM `C:\.........\Essai-2Msquery.xlsx`.`Source$` `Source$`
P.S. sur la base du fichier de Chris du post #21
A+

[Edit] Arf... Arrivé après la bataille!
 
Dernière modification par un modérateur:
Re : Requête microsoft query regroupement de certaines colonnes de 2 tables

Bonjour Chris, Bonjour Hasco,

J'ai donc testé cette requête qui exauce mon souhait.

SELECT Internes.Dates, Internes.`Km en charge`, Internes.Véhicules, iif(Internes.Véhicules<=6,'<=6','>6') as [type] FROM Internes Internes

Ai-je compris ?: les champs souhaités (SELECT) puis la condition sur la colonne véhicules (iif(Internes.Véhicules<=6,'<=6','>6') as [type]) puis la source (FROM Internes Internes).

Cependant, je ne comprends pas bien "l'ordre" de la condition et as [type]: iif(Internes.Véhicules<=6,'<=6','>6') as [type]. Puis-je user de ton temps pour une explication?

Dans tous les cas un grand merci
 
Re : Requête microsoft query regroupement de certaines colonnes de 2 tables

Bonjour,

(iif(Internes.Véhicules<=6,'<=6','>6') as [type]) = Création d'un champ calculé nommé 'type' (AS [Type]) qui renverra pour chaque ligne de la table, soit la chaine "<=6" pour les Véhicules <=6 soit ">6" pour les Véhicules >6

Est-ce plus clair?
Sinon je t'invite à consulter: Le SQL de A à Z - SGBD, SQL et types de données

P.S. si tu interroges par sql un classeur ouvert ou actif, enregistre le d'abord, sinon ta requête risque de ne pas refléter les dernières modifications du fichier.

A+
 
Re : Requête microsoft query regroupement de certaines colonnes de 2 tables

re bonjour,

Oui, c'est plus clair. C'est pour cela que j'ai comme nom de champ dans le TCD: Type. En effet, avant de poster la question j'ai consulté ce lien (tant bien que mal....)

Merci pour ces informations
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour