1. #1
    Membre à l'essai

    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    septembre 2015
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Fidji

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Industrie

    Informations forums :
    Inscription : septembre 2015
    Messages : 18
    Points : 21
    Points
    21
    Billets dans le blog
    1

    Par défaut Afficher des colonnes pour des lignes répétitives dans une ligne

    bonjour tous le monde
    j'ai ce tableau commande achat par client
    NumClient NumComande CodeArticle
    1 1 5240
    1 1 5241
    1 1 5242
    1 2 5243
    1 2 5240
    1 2 5244
    j'aimré voir une résutat comme ça :

    NumClient NumComande CodeArticle
    1 1 5240 5241 5242
    1 2 5243 5240 5244

    est ce que c'est possible?

  2. #2
    Membre chevronné
    Femme Profil pro
    dba
    Inscrit en
    juillet 2007
    Messages
    3 738
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : juillet 2007
    Messages : 3 738
    Points : 1 906
    Points
    1 906

    Par défaut

    Ta question n'est pas vraiment claire.

  3. #3
    Membre à l'essai

    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    septembre 2015
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Fidji

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Industrie

    Informations forums :
    Inscription : septembre 2015
    Messages : 18
    Points : 21
    Points
    21
    Billets dans le blog
    1

    Par défaut j'ai ajouté les tables est ce que vous pouvez m'aider

    j'ai ajouté les tables est ce que vous pouvez m'aider

  4. #4
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Ingénieur d'études décisionnel
    Inscrit en
    mai 2002
    Messages
    7 443
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur d'études décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : mai 2002
    Messages : 7 443
    Points : 22 572
    Points
    22 572

    Par défaut

    Qu'as-tu déjà essayé comme requête ?
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  5. #5
    Membre à l'essai

    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    septembre 2015
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Fidji

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Industrie

    Informations forums :
    Inscription : septembre 2015
    Messages : 18
    Points : 21
    Points
    21
    Billets dans le blog
    1

    Par défaut

    bon, honnêtement j'ai cherché sur le net et je trouve qu'il y a une fonction Pivot mais j'ai rien compris , et le premier tableau c'est la résultat de mon requete c'est une requete simple :
    select NUMClient,NumComande,Numarticle
    from Table1
    Where NumComande in ('1','2')
    est ce que la fonction pivot marche ou bien il y a autre méthode
    Merci d'avance

  6. #6
    Expert confirmé
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    février 2010
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : février 2010
    Messages : 3 055
    Points : 5 007
    Points
    5 007
    Billets dans le blog
    1

    Par défaut

    Bonjour,

    Ce que tu cherches à faire, c'est un "GROUP_CONCAT".

    Cette fonction non normée, issue de MySQL n'est pas supportée par SQL Server.

    Il existe plusieurs méthodes pour la simuler.

    Tu en trouveras notamment une ici (ainsi qu'un SPLIT, même si depuis la version 2016 le SPLIT est géré nativement par SQL Server)

    https://www.developpez.net/forums/d1...utilisant-clr/
    On ne jouit bien que de ce qu’on partage.

  7. #7
    Membre à l'essai

    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    septembre 2015
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Fidji

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Industrie

    Informations forums :
    Inscription : septembre 2015
    Messages : 18
    Points : 21
    Points
    21
    Billets dans le blog
    1

    Par défaut

    j'ai le sql serveur version 2012 est ce qu'il supporte le split ?

  8. #8
    Membre à l'essai

    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    septembre 2015
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Fidji

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Industrie

    Informations forums :
    Inscription : septembre 2015
    Messages : 18
    Points : 21
    Points
    21
    Billets dans le blog
    1

    Par défaut

    ok, j'ai lu le contenu de votre lien mais il semble que vous deviez créer des classes dans les studios visuels, je ne travaille jamais avec et actuellement j'utilise sql server studio manager pour collecter les informations, je ne sais pas comment utiliser visuel stodio

  9. #9
    Expert confirmé
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    février 2010
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : février 2010
    Messages : 3 055
    Points : 5 007
    Points
    5 007
    Billets dans le blog
    1

    Par défaut

    Oui, il est impératif de compiler les DLL avec Microsoft Visual Studio.

    Vous pouvez trouver ici la version "Community" (gratuite) :
    https://www.visualstudio.com/fr/downloads/

    Après, si vous n'avez jamais utilisé Visual Studio, je vous conseille vivement de vous faire assister d'une personne qui connait déjà : rien que pour choisir les composants à installer ou le type de projet à créer, sans aucun recul ça peut vite être déroutant.

    -- Edit : Voici une version compilée "as is".
    Il n'est pas impossible qu'elle ne fonctionne pas avec SQL Server 2012, car je ne l'ai jamais déployée sur cette version et mon target était la version 2014. Recompiler serait donc plus prudent.

    Après, pour les explications de comment l'installer et l'utiliser, je te laisse voir dans l'autre topic.
    Fichiers attachés Fichiers attachés
    On ne jouit bien que de ce qu’on partage.

  10. #10
    Membre à l'essai

    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    septembre 2015
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Fidji

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Industrie

    Informations forums :
    Inscription : septembre 2015
    Messages : 18
    Points : 21
    Points
    21
    Billets dans le blog
    1

    Par défaut

    J'ai eu une idée je l'ai mis sur cette requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    select NumClient,NumComande,substring((select ','+ CodeArticle from CommandeAchat as c where c.NumClient = d.NumClient and c.NumComande = d.NumComande ),2,400) 
    from CommandeAchat d
     
    group by NumClient,NumComande
    mais j'ai un message d'erreur:
    no valid sql statement ! error near : ),2,400) from CommandeAchat d

    group by NumClient,NumComande
    est-ce que cela a du sens les gars ?

  11. #11
    Modérateur

    Profil pro
    Inscrit en
    janvier 2010
    Messages
    4 586
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : janvier 2010
    Messages : 4 586
    Points : 9 291
    Points
    9 291

    Par défaut

    Bonjour,

    Non, car la sous requête renverra plusieurs lignes, or dans ce contexte il faut une valeur scalaire.

    Mais vous pouvez, sur ce principe, passer par du XML :

    (pas testé) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    select NumClient,NumComande,substring((select ','+ CodeArticle from CommandeAchat as c where c.NumClient = d.NumClient and c.NumComande = d.NumComande FOR XML PATH('')),2,400) 
    from CommandeAchat d
     
    group by NumClient,NumComande

  12. #12
    Membre à l'essai

    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    septembre 2015
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Fidji

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Industrie

    Informations forums :
    Inscription : septembre 2015
    Messages : 18
    Points : 21
    Points
    21
    Billets dans le blog
    1

    Par défaut

    Bonjour,
    Apparemment, sql server management studio ne supporte pas for xml path () parce que j'ai ce message:
    Msg 6850, Level 16, State 1, Line 1
    Row name ' ' contains an invalid XML identifier as required by FOR XML; ' '(0x0020) is the first character at fault.

  13. #13
    Membre à l'essai

    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    septembre 2015
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Fidji

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Industrie

    Informations forums :
    Inscription : septembre 2015
    Messages : 18
    Points : 21
    Points
    21
    Billets dans le blog
    1

    Par défaut

    bonjour a tous
    j'ai réussi à le faire, ça marche parfaitement, grâce à devlopez.net merci a tous le monde

  14. #14
    Rédacteur
    Avatar de SQLpro
    Homme Profil pro
    Expert SGBDR & SQL, spécialiste Microsoft SQL Server
    Inscrit en
    mai 2002
    Messages
    17 333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert SGBDR & SQL, spécialiste Microsoft SQL Server
    Secteur : Conseil

    Informations forums :
    Inscription : mai 2002
    Messages : 17 333
    Points : 40 139
    Points
    40 139
    Billets dans le blog
    1

    Par défaut

    Si vous êtes avec SQL Server 2016, utilisez STRING_AGG

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *

  15. #15
    Membre à l'essai

    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    septembre 2015
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Fidji

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Industrie

    Informations forums :
    Inscription : septembre 2015
    Messages : 18
    Points : 21
    Points
    21
    Billets dans le blog
    1

    Par défaut

    Merci bien voici ma requete ça marche bien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    select distinct d.los,d.cutgo_muster,substring((select distinct ',',c.auftnr from alcimdb.dbo.cutgo_cluster_unit c where c.los = d.los and c.cutgo_muster = d.cutgo_muster and  c.cutgo_lauf = '25621'   FOR XML PATH ('c.auftnr') ),2,400) ,
    x.lastmodzeit "date heure",
    case when x.glasart = '134' then 'LOW-E' 
            when x.glasart = '104' then 'Float' end "Type de Verre",
    ((x.flaeche)/19.26)*100 "% Optimisation",
     x.flaeche "Surface Utile",
    x.tisch_id
    from alcimdb.dbo.cutgo_cluster_unit d,alcimdb.dbo.xopt_statistik_jumbo x
    where d.cutgo_lauf = '25621'
    and d.los=x.opt_run
    and d.cutgo_muster=x.muster
    and d.cutgo_lauf=x.jobid
    order by x.lastmodzeit

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2010] Référence des colonnes d'un tableau excel dans une macro
    Par BigBill_125 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 02/11/2017, 13h05
  2. Réponses: 21
    Dernier message: 19/09/2011, 14h57
  3. récupérer des mots séparés par un espace dans une ligne
    Par laurentze dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 14/06/2010, 17h04
  4. Réponses: 0
    Dernier message: 02/01/2009, 16h40
  5. Choisir une colonne suivant le nom mis dans une ligne
    Par Masmeta dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 08/02/2008, 16h27

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