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

MS SQL Server Discussion :

Requête SQL pour mettre à plat une table


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Inscrit en
    Octobre 2008
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 111
    Par défaut Requête SQL pour mettre à plat une table
    Bonjour,

    J'ai un souci de conception de requête SQL. J'ai une table d'entrée avec 5 champs.
    Cette table historise l'action des agents téléphoniques qui se retransfère les appels, ou autres actions. J'aimerais faire une requête SQL (ou carrément un script SQL) qui me sort une table qui met à plat les seules actions de transfert.

    Voici l'explication clarifiée :



    Que me proposez-vous ?
    Merci bcp !

  2. #2
    Membre Expert

    Homme Profil pro
    Inscrit en
    Juillet 2003
    Messages
    2 075
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations forums :
    Inscription : Juillet 2003
    Messages : 2 075
    Par défaut
    Bjr
    je proposerai quelque chose comme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select *
    from ma_table
    where type_appel='transfert'

  3. #3
    Expert confirmé
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 447
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 447
    Par défaut
    Bonjour,
    Puisque les colonnes de chaque ligne du résultat viennent de 3 lignes différentes de la table d'origine, je pense qu'il faut faire 2 jointures.
    Les données "principales" (id_appel, type_appel, agent émetteur) viennent des lignes dont le type est "transfert".
    Par rapport à cette ligne:
    La durée, de la ligne ayant le même id_appel, et un id_sequence +1
    L'agent récepteur, de la ligne ayant le même id_appel, et un id_sequence +2

    Voilà, il ne reste plus qu'à écrire la requête

    Tatayo.

    P.S. petite remarque: plutôt que le libelle du type, j'aurai bien vu un id qui pointe vers une table des types d'appel. Renommage, toussa...

  4. #4
    Membre actif
    Inscrit en
    Octobre 2008
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 111
    Par défaut
    Si seulement ça pouvait être aussi simple que ça Gnux
    Merci tatayo ! Effectivement je peux faire plusieurs JOIN. Par contre, ça ne marchera plus pour le cas des lignes en vert, c-a-d là où il peut y avoir 50 transferts. J'ai l'impression qu'il faut passer en mode cursor, mais je veux éviter à cause des perfs.

    J'ai pensé à utiliser la syntaxe for xml pour mettre dans une longue chaine de caractères les colonnes type_appel et agent, mais après c'est de la cuisine, il faut parser ces colonnes ensemble... c'est moche, sûrement gourmand en durée d'exécution...

  5. #5
    Expert confirmé
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 447
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 447
    Par défaut
    Citation Envoyé par abbepierre94 Voir le message
    Merci tatayo ! Effectivement je peux faire plusieurs JOIN. Par contre, ça ne marchera plus pour le cas des lignes en vert, c-a-d là où il peut y avoir 50 transferts.
    En fait si, ça fonctionne aussi pour les lignes en vert. En tout cas ça donne bien le résultat demandé par rapport au jeu de test présenté

    Tatayo

  6. #6
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Quel est votre SGBD ?

    Présentez vos données sous forme de script (create table + inserts) plutôt que sous forme d'image, ça permet à tout à chacun de bidouiller des requêtes dans son coin.

Discussions similaires

  1. probleme pour mettre à jour une table
    Par micker dans le forum Langage
    Réponses: 4
    Dernier message: 05/11/2009, 14h11
  2. Réponses: 3
    Dernier message: 09/10/2009, 20h20
  3. Problème pour mettre à jour une table SQL
    Par Bes74 dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 27/03/2009, 20h21
  4. RechDom pour mettre à jour une table
    Par timis dans le forum Access
    Réponses: 7
    Dernier message: 28/08/2008, 13h18
  5. Réponses: 8
    Dernier message: 08/03/2007, 16h54

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