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

Langage SQL Discussion :

[SQL Server 2000/Access 2003] Requête SQL à affiner


Sujet :

Langage SQL

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 132
    Points : 69
    Points
    69
    Par défaut [SQL Server 2000/Access 2003] Requête SQL à affiner
    Windows XP / SQL SERVER 2000 / Access 2003

    voici ma requête qui me permet d'avoir un classement de l'ordre de
    xxx
    yyy
    zzz
    aaa | bbb

    en gros par individu j'ai leur présence à l'évènement 1 et 2 afin de pouvoir faire des comparaison entre colonne. néanmoins je dois avoir ceux qui étaient tout sauf présent à l'évènement 1 MAIS qui sont potentiels à l'évènement 2

    voici ma requête

    SELECT a.personne,
    a.prenom,
    a.societe,
    a.pays,
    a.titulaire,
    [europe centrale].statut AS CE,
    [europe centrale].potentialite AS Expr0,
    [europe centrale 2006].statut AS CE2006,
    [europe centrale 2006].potentialite AS Expr1
    FROM
    (SELECT pe0.personne AS personne,
    pe0.prenom AS prenom,
    pe0.nrid AS nrid,
    so0.pays AS pays,
    so0.societe,
    so0.titulaire
    FROM sysadm.so0 so0
    JOIN sysadm.sp0 sp0
    ON so0.nrid = sp0.so0_nrid
    JOIN sysadm.pe0 pe0
    ON pe0.nrid = sp0.pe0_nrid
    WHERE so0.type LIKE ('investisseurs')
    AND so0.template IS NULL
    )
    a
    LEFT OUTER JOIN
    (SELECT pe0_nrid AS nrid,
    statut,
    potentialite
    FROM sysadm.xps0 xps0
    WHERE xps0.statut NOT LIKE 'participant%'
    AND xps0.evt_nom LIKE ('europe centrale')
    )
    [europe centrale]
    ON a.nrid = [europe centrale].nrid
    LEFT OUTER JOIN
    (SELECT pe0_nrid AS nrid,
    statut,
    potentialite
    FROM sysadm.xps0 xps0
    WHERE xps0.statut LIKE 'potentiel%'
    AND xps0.evt_nom LIKE ('europe centrale 2006')
    )
    [europe centrale 2006]
    ON a.nrid = [europe centrale 2006].nrid
    ORDER BY a.societe

    au final je dois avoir les personnes qui étaient: absente, potentielle, pas intéressée pour l'évènement 1 et à la fois potentielle pour l'évènement 2

  2. #2
    Membre expert
    Avatar de Alexandre T
    Homme Profil pro
    Chef de projets AMO
    Inscrit en
    Mai 2002
    Messages
    1 213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projets AMO
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 213
    Points : 3 001
    Points
    3 001
    Par défaut
    Bonjour,

    Lisez les règles du forum



    Merci de lire également les posts Importants en tête de chacun des forums où vous souhaitez poster. Notamment ce sujet : CONSEILS... à lire AVANT de POSTER ! merci

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 132
    Points : 69
    Points
    69
    Par défaut
    J'ai modifié le code et j'ai tenté de respecté les conventions du forum

  4. #4
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Points : 2 227
    Points
    2 227
    Par défaut
    Raté !



    Essaye avec les balises code (le # en haut à droite)

  5. #5
    Membre expert
    Avatar de Alexandre T
    Homme Profil pro
    Chef de projets AMO
    Inscrit en
    Mai 2002
    Messages
    1 213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projets AMO
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 213
    Points : 3 001
    Points
    3 001
    Par défaut
    Citation Envoyé par Médiat
    Raté !

    Lisez aussi le paragraph sur le jeu d'essai. Mais vos requêtes en left outer join sur des select est assez gourmande, et ne respecte aps vraiment les standard SQL! Je vous invite à lire les tutoriels de ce site sur les jointures !

    http://sql.developpez.com

    http://sqlpro.developpez.com

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 132
    Points : 69
    Points
    69
    Par défaut réponse
    Malheureusement je n'ai pas le choix d'utiliser le Left Outer Join pour la simple et bonne raison que la base de données telle qu'elle a été créée et tuner pour le CRM qui lui est relié est une catastrophe.

    Les conventions n'ayant pas été respectées par les créateurs du CRM et donc de la base de données m'empêche de faire des requêtes "simples" correspondant aux "standards" du SQL (et surtout les requêtes sont créées selon les envies de la directrice marketing qui n'a pas tout à fait compris que l'informatique ne se résume pas à "un bouton qu'on appuie et tout marche...)

    Néanmoins je vais m'évertuer à lire les tutoriaux dans l'espoir de trouver un autre moyen que la requête que j'ai.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 132
    Points : 69
    Points
    69
    Par défaut intersect
    j'ai tenté de faire cette requête en lui adjoignant une clause intersect mais voila j'ai un joli message d'erreur du type

    Incorrect syntax near the keyword 'intersect'

  8. #8
    Xo
    Xo est déconnecté
    Expert confirmé
    Avatar de Xo
    Inscrit en
    Janvier 2005
    Messages
    2 701
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 701
    Points : 4 238
    Points
    4 238
    Par défaut
    Apparement, INTERSECT n'est supporté ni par Access, ni par SQL Server :

    cf http://sql.developpez.com/sqlaz/fonctions/#L1.8

  9. #9
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Points : 2 227
    Points
    2 227
    Par défaut
    Je ne suis pas sur d'avoir tout compris, mais je ferais cela :

    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
    SELECT pe0.personne, pe0.prenom, so0.societe, so0.pays, so0.titulaire
           ec.statut, ec.potentialite,
           ec2.statut, ec2.potentialite,
    FROM   sysadm.pe0 pe0 INNER JOIN sysadm.sp0 sp0
                                  ON pe0.nrid = sp0.pe0_nrid 
                          INNER JOIN sysadm.so0
                                  ON so0.nrid = sp0.so0_nrid
                          INNER JOIN sysadm.xps0 ec
                                  ON a.nrid = ec.nrid
                          INNER JOIN sysadm.xps0 ec2
                                  ON a.nrid = ec2.nrid
    WHERE so0.type LIKE ('investisseurs') 
      AND so0.template IS NULL 
      AND ec.statut NOT LIKE 'participant%' 
      AND ec.evt_nom = 'europe centrale'
      AND ec2.statut LIKE 'potentiel%' 
      AND ec2.evt_nom = 'europe centrale 2006'

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

Discussions similaires

  1. [SQL Server 2000 - Win 2003]Structure OLEVERB Invalide
    Par Portekoi dans le forum Administration
    Réponses: 1
    Dernier message: 18/10/2011, 14h29
  2. adaptation requête de SQL server 2000 à access
    Par Bobble dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 27/05/2010, 09h11
  3. Réponses: 2
    Dernier message: 30/04/2009, 16h35
  4. Réponses: 0
    Dernier message: 04/02/2009, 12h26
  5. Réponses: 9
    Dernier message: 19/03/2008, 19h52

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