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

Développement SQL Server Discussion :

[SQL SERVER 2008] Requette SQL


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2006
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Portugal

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2006
    Messages : 55
    Par défaut [SQL SERVER 2008] Requette SQL
    Salut,

    voila j'ai um probleme je dois fair une requette sql un peut compliqué je pense.

    Je vais expliquer avec un exemple pour facilité.

    NOM, DISTANCE, RESULTAT
    Philippe, 3.30,XXO
    David, 3.30,XXX
    Jean, 3.30,O
    Philippe, 3.55,XO
    Jean, 3.55,XXO

    je voudrai avoir le resultat suivant avec le SQL

    NOM 3,30 | 3,55
    Philippe XXO | XO
    David XXX |
    Jean O | XXO

    mon resultat é dinamique avec les distance que j'ai defini sur ma table.

    une ideé?

  2. #2
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Par défaut
    Bonjour,

    Vous pouvez faire cela avec l'opérateur PIVOT :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    DECLARE @Tb TABLE
    (
    	nom VARCHAR(32),
    	distance NUMERIC(3, 2),
    	resultat CHAR(3)
    )
     
    INSERT INTO @Tb 
    SELECT 'Philippe', 3.30, 'XXO'
    UNION SELECT 'David', 3.30, 'XXX'
    UNION SELECT 'Jean', 3.30, 'O'
    UNION SELECT 'Philippe', 3.55, 'XO'
    UNION SELECT 'Jean', 3.55, 'XXO'
     
    SELECT nom, [3.30], [3.55]
    FROM
    (
    	SELECT nom, distance, resultat
    	FROM @Tb
    ) AS S
    PIVOT
    (
    	MAX(resultat) FOR distance IN ([3.30], [3.55])
    ) AS P
    Mais il vaut mieux que vous fassiez cela du côté de votre applicatif, car c'est de la présentation

    @++

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2006
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Portugal

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2006
    Messages : 55
    Par défaut
    Merci pou votre aide, elsuket!

    Y a t'il une manière de metre distance dinamique, car la on define la colone de la requete em mode statique? Imaginon qu'il ya a 4 distance (3.40,3.50,3.60,3.64).

    Merci D'avance!

    Citation Envoyé par elsuket Voir le message
    Bonjour,

    Vous pouvez faire cela avec l'opérateur PIVOT :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    DECLARE @Tb TABLE
    (
    	nom VARCHAR(32),
    	distance NUMERIC(3, 2),
    	resultat CHAR(3)
    )
     
    INSERT INTO @Tb 
    SELECT 'Philippe', 3.30, 'XXO'
    UNION SELECT 'David', 3.30, 'XXX'
    UNION SELECT 'Jean', 3.30, 'O'
    UNION SELECT 'Philippe', 3.55, 'XO'
    UNION SELECT 'Jean', 3.55, 'XXO'
     
    SELECT nom, [3.30], [3.55]
    FROM
    (
    	SELECT nom, distance, resultat
    	FROM @Tb
    ) AS S
    PIVOT
    (
    	MAX(resultat) FOR distance IN ([3.30], [3.55])
    ) AS P
    Mais il vaut mieux que vous fassiez cela du côté de votre applicatif, car c'est de la présentation

    @++

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 997
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 997
    Billets dans le blog
    6
    Par défaut
    non !

    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...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  5. #5
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Par défaut
    ... ou pas franchement directement.
    Il vous faudrait pour cela collecter les valeurs distinctes des distances et contruire votre requête en SQL dynamique.
    Ce n'est pas infaisable, en revanche ce sera moins maintenable.

    @++

Discussions similaires

  1. Réponses: 0
    Dernier message: 18/08/2009, 17h00
  2. Réponses: 0
    Dernier message: 03/06/2009, 16h31
  3. Migrer BD SQL Server 7 en SQL Server 2008
    Par davidkungfu dans le forum Administration
    Réponses: 1
    Dernier message: 25/02/2009, 19h49
  4. Migrer BD SQL Server 7 en SQL Server 2008
    Par davidkungfu dans le forum Général Dotnet
    Réponses: 1
    Dernier message: 25/02/2009, 15h34
  5. Migration de SQL server 2005 vers SQL server 2008
    Par sharepoint_addict dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 30/10/2008, 17h32

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