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 :

Requete avec une sous-requete... Ne fonctionne qu'a moitie..


Sujet :

MS SQL Server

  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2002
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 25
    Points : 24
    Points
    24
    Par défaut Requete avec une sous-requete... Ne fonctionne qu'a moitie..
    Bonjour,

    voici ma requete:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    conn2Query="SELECT * FROM PDM_USER_2,PDM_USER_DOSE_2 WHERE (PDM_USER_DOSE_2.DoseSource=1 AND PDM_USER_DOSE_2.DeepDose='') ORDER BY "&Column&" "&Order&""
    Dans PDM_USER_2, j'ai la liste de mes utilisateurs.
    et dans PDM_USER_DOSE_2, leur enregistrements.
    Je cherche a ce que le resultat de cette query, me donne la liste des utilisateurs qui n'ont pas d'enregistrement dans la colonne PRM_USER_DOSE_2.DeepDose

    Et c'est la ou ca fonctionne a moitie

    Exemple si j'affiche tous les users.
    Nom | DeepDose
    ------------------------
    Ludo | 0
    Fredo | - ( - : signifie pas de resultat)
    Tux | 0,01
    Jacqo | -
    Billou | 3,25
    J'aimerai donc obtenir ce resultat:
    Nom | DeepDose
    ------------------------
    Fredo | -
    Jacqo | -

    Mais la j'obtient ca:
    Nom | DeepDose
    ------------------------
    Ludo | -
    Fredo | -
    Tux | -
    Jacqo | -
    Billou | -
    En fait, ca m'efface les valeurs de leurs enregistrements, mais leur nom reste toujours dispo dans le resultat de la query ...

    Quelqu'un a une idee de pourquoi ca fait ca?? Je capte pas du tout

    Merci
    Ludo

  2. #2
    Rédacteur/Modérateur

    Avatar de Fabien Celaia
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2002
    Messages
    4 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2002
    Messages : 4 224
    Points : 19 566
    Points
    19 566
    Billets dans le blog
    25
    Par défaut
    Elle est ou, la jointure entre les 2 tables ?
    Sr DBA Oracle / MS-SQL / MySQL / Postgresql / SAP-Sybase / Informix / DB2

    N'oublie pas de consulter mes articles, mon blog, les cours et les FAQ SGBD

    Attention : pas de réponse technique par MP : pensez aux autres, passez par les forums !

  3. #3
    Membre à l'essai
    Inscrit en
    Mars 2002
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 25
    Points : 24
    Points
    24
    Par défaut
    Euh, si je comprend bien ce que tu demandes

    PDM_USER_2.MAINKEY = PDM_USER_DOSE_2.UserID
    C'est ca le lien entre les 2 tables.

    Si c pas ce que tu demandais, j'ai pas compris la question

    Ludo

  4. #4
    Rédacteur/Modérateur

    Avatar de Fabien Celaia
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2002
    Messages
    4 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2002
    Messages : 4 224
    Points : 19 566
    Points
    19 566
    Billets dans le blog
    25
    Par défaut
    C'etait bien ca que je demandais. Il me semble qu'elle n'etait pas dans ta requete...
    Sr DBA Oracle / MS-SQL / MySQL / Postgresql / SAP-Sybase / Informix / DB2

    N'oublie pas de consulter mes articles, mon blog, les cours et les FAQ SGBD

    Attention : pas de réponse technique par MP : pensez aux autres, passez par les forums !

  5. #5
    Membre à l'essai
    Inscrit en
    Mars 2002
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 25
    Points : 24
    Points
    24
    Par défaut
    behn je peux pas la mettre dans la requete... euh enfin je crois pas
    Car les gens qui n'ont pas de resultat pour une periode donne, ne sont pas marque dans la table PDM_USER_DOSE_2
    Mais il peuvent l'etre pourune autre periode...
    Donc si je marque ca, ca peut me prendre des resultats d'une autre periode? non?

    Ludo
    P.S.: Je galere comme un grand des qu'il y a plusieurs table imbriquees! lol

  6. #6
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Points : 4 414
    Points
    4 414
    Par défaut
    Comment prétends-tu faire une requette sur deux tables sans jointure ?
    Elle va te renvoyer le produit cartesien des 2 tables et la plupart du temps ca peut mettre à genoux ton serveur.

    Découvrez la FAQ de MS SQL Server.
    La chance accorde ses faveurs aux esprits avertis !

  7. #7
    Rédacteur/Modérateur

    Avatar de Fabien Celaia
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2002
    Messages
    4 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2002
    Messages : 4 224
    Points : 19 566
    Points
    19 566
    Billets dans le blog
    25
    Par défaut
    Citation Envoyé par COUME
    behn je peux pas la mettre dans la requete... euh enfin je crois pas
    Car les gens qui n'ont pas de resultat pour une periode donne, ne sont pas marque dans la table PDM_USER_DOSE_2
    Jointure externe alors:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    conn2Query="SELECT * FROM PDM_USER_2 LEFT OUTER JOIN PDM_USER_DOSE_2 ON PDM_USER_2.MAINKEY = PDM_USER_DOSE_2.UserID 
     WHERE (PDM_USER_DOSE_2.DoseSource=1 AND PDM_USER_DOSE_2.DeepDose='') ORDER BY "&Column&" "&Order&""
    Sr DBA Oracle / MS-SQL / MySQL / Postgresql / SAP-Sybase / Informix / DB2

    N'oublie pas de consulter mes articles, mon blog, les cours et les FAQ SGBD

    Attention : pas de réponse technique par MP : pensez aux autres, passez par les forums !

  8. #8
    Membre à l'essai
    Inscrit en
    Mars 2002
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 25
    Points : 24
    Points
    24
    Par défaut
    hmm ca va pas ca m'affiche qu'un resultat...
    Bon la je me prends la tete depuis une semaien dessus ca va pas...

    Si je reflechis et j'analyze le truc en repartant de zero... pour tenter de simplifier... peut-etre j'etais trop tordu avant.

    Objectif: Recuperer les ID des users de PDM_USER_2 (identifier par MAINKEY)
    Conditions: qu'ils n'aient pas d'enregistrement dans la table PDM_USER_DOSE_2 pour cette periode...

    Infos:
    - Colonne de la periode: PDM_USER_DOSE_2.PeriodID
    - Colonne User: PDM_USER_DOSE_2

    Resultat:
    SELECT * FROM PDM_USER_DOSE_2 et c la que je capte pas comment ecrire la suite... Je dois reussir a traduire:
    quand PDM_USER_DOSE_2.UserID n'a pas de correspondance avec PDM_USER_2.MAINKEY
    et si il y a une correspondance il faut que PDM_USER_DOSE_2.PeriodID ne soit egale a la variable RequestedPeriod

    Pff ca me semble impossible a faire ca...
    MAIS je suis sure que c faisable, c'est juste un peu complique!

    Ludo, sur sa petite barque en train de se faire manger pas le requin MS-SQL!

  9. #9
    Membre à l'essai
    Inscrit en
    Mars 2002
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 25
    Points : 24
    Points
    24
    Par défaut
    Bon behn j'ai trouve enfin un guru d'australie

    Merci pour votre aide, et si qqun est interesse par la solution demandez la moi.

    Merci
    Ludo

  10. #10
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Points : 4 414
    Points
    4 414
    Par défaut
    La philosophie du forum est d'exposer les solutions afin qu'elle serve ultérieurement.
    Il serrais souhaitable que tu postes ta solution ici (sur cette même url).

    Découvrez la FAQ de MS SQL Server.
    La chance accorde ses faveurs aux esprits avertis !

  11. #11
    Membre à l'essai
    Inscrit en
    Mars 2002
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 25
    Points : 24
    Points
    24
    Par défaut
    La voici donc

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select * from PDM_USER_2 left join PDM_USER_DOSE_2 on PDM_USER_2.mainkey = PDM_USER_DOSE_2.userid and periodid ="&RequestedPeriodID&" where PDM_USER_DOSE_2.userid is null ORDER BY "&Column&" "&Order&"
    Si ca aide qq tant mieux

    Ludo

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

Discussions similaires

  1. problème avec une sous requete dans WHERE
    Par prikama dans le forum Débuter
    Réponses: 0
    Dernier message: 08/12/2012, 12h57
  2. Réponses: 2
    Dernier message: 04/06/2009, 13h36
  3. INSERT avec une sous requete et des valeurs
    Par sabotage dans le forum Requêtes
    Réponses: 2
    Dernier message: 17/07/2008, 12h00
  4. [Access] problème avec une sous-requête
    Par dirtyjs dans le forum Langage SQL
    Réponses: 12
    Dernier message: 09/11/2006, 22h26
  5. [Access] probleme avec une sous-requête synchronisée
    Par dirtyjs dans le forum Langage SQL
    Réponses: 1
    Dernier message: 11/09/2006, 16h44

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