IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes et SQL. Discussion :

Requête avec "transform" (ou presque)


Sujet :

Requêtes et SQL.

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 92
    Points : 98
    Points
    98
    Par défaut Requête avec "transform" (ou presque)
    Bonjour,

    Je cherche à retourner des valeurs en tant que nom de colonne, comme avec un "transform", mais sans "en-tête de ligne".

    Voici le cas :
    La table de départ
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Nom 		|Groupe
    ========================
    ORANGE 		| 1
    BLEU 		| 1
    VERT 		| 1
    ACIER 		| 4
    BOIS 		| 4
    A 		| 30
    B 		| 30
    C 		| 30
    Voici ce que je souhaiterai obtenir (avec une concaténation pour le nom de colonne) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Groupe 1	| Groupe 4 	| Groupe 30
    ======================================
    ORANGE 		| ACIER		| A
    BLEU 		| BOIS   	| B
    VERT  		| (rien) 	| C
    Le mieux que j'obtienne, avec le sql suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    TRANSFORM First(NOM) AS PremierDeNOM
    SELECT nom
    FROM MaTable
    GROUP BY nom, GROUPE, NOM
    ORDER BY GROUPE, NOM
    PIVOT "Groupe " & [GROUPE];
    Retourne ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    nom	| Groupe 1	|Groupe 30	|Groupe 4
    =======================================================
    BLEU	|BLEU		|		|	
    ORANGE	|ORANGE		|		|
    VERT	|VERT		|		|
    ACIER	|		|		|ACIER	
    BOIS	|		|		|BOIS	
    A	|		|A		|
    B	|		|B		|
    C	|		|C		|
    --
    Pour l'application, c'est bien une base access, mais j'y accède en vba Excel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    With ActiveWorkbook.Connections(r.Value).ODBCConnection
    	.CommandText = sSQL 'la requête à trouver
    	.CommandType = xlCmdSql
    End With

    J'espère donc que c'est possible en se contentant d'une requête sql.

    merci bien

    Damran

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 596
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 596
    Points : 34 282
    Points
    34 282
    Par défaut
    Salut,

    en fait ici, tu décides de mettre arbitrairement les valeurs A, B, C en face des autres enregistrements, et ce n'est donc pas une vrai requête d'analyse croisée.

    Pour arriver à ton format, je te propose dans un premier temps de faire une requête avec un auto incrément par groupe
    http://access.developpez.com/faq/?pa...ementerRequete

    Une fois les incréments réalisés, tu vas pouvoir faire des jointures sur ces incréments pour ensuite les classés en analyse croisée
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo