[sql] requete selection SQl

Résolu
Salut a tous

je voudrais savoir comment faire pour selectionner les utilisateurs qui n'ont pas de PC
Je m'explique
dans ma table PC j'ai un champ PC
ET j'ai aussi une table Utilisateur
ma table Utilisateur est relié a la table PC

est ce qu'il y a moyen de faire une requete SQL de ce style
SELECT utiliateur FROM Utilisateur
WHERE utilisateur.utilisateur<>PC.nom
ca ca ne marche pas
Configuration: Windows XP
Internet Explorer 6.0

9 réponses

  1. La il y a de l'idee mais ca ne marche pas

    SELECT [Nom]
    FROM Utilisateurs
    WHERE NOT EXISTS (SELECT utilisateur FROM PC);
    3
    1. Contributeur
      Ca dépends de comment tu as construit ta base, tu nous met la requete comme ca mais on ne connais pas les champs, leur type leur nom ni à quoi ils correspondent... donc on ne peut rien répondre malheuresement :)

      Est ce que ta base gere seule les clés étrangères?
      Oui -> montre nous tes tables (différents champs, etc)
      Non-> montre nous tes tables (idem), et il va te falloir faire une table de transition, nommée par exemple 'Utilisateur_pc' qui permet de faire le lien entre les identifiants des tables 'utilisateur' et 'pc' de manière à pouvoir établir le lien que tu souhaite.

      Une fois le lien établi, pour récupérer les utilisateurs qui ont un pc :

      SELECT u.nom FROM UTILISATEUR u, UTILISATEUR_PC up, PC p WHERE u.id = up.id


      Pour sélectionner les utilisateurs qui n'ont pas de pc tu fais la requête SQL inverse.

      3
      1. Déjà dans ton truc il te faut trois tables
        table 1 utilisateur
        table 2 pc
        table 3 utilisateurAyantPc
        Parce que sinon tu ne gères qu'un PC par utilisateur est vice versa

        Dans ton cas maintenant avec l'identifiant utilisateur est sur la table PC pour retrouver les utilisateur sans PC
        SELECT * FROM utilisateurs WHERE idUtilisateur NOT IN (SELECT idUtilisateur FROM pc)
        2
        1. salut

          c'est quoi la requete SQL inverse ?

          je vais expliquer umpeu +
          j'ai une table PC avec plein de champ qui ne sont pas important ici
          il y a une cle primaire (ref PC) en numero automatique
          et un champ utilisateur qui me propose avec une liste les utilisateur qui ce trouve dans ma table utilisateur

          ce que je voudrais c'est l'inverse de cette requete

          SELECT utilisateur FROM PC PC EST MA TABLE
          la ca me selectionne tous les utilisateurs qui ont un PC
          moi ce que je veut c'est l'inverse
          0
          1. En fait ce que j'aimerais c'est
            d'un cote selectionner tous les utilisateurs
            SELECT Nom FROM Utilisateurs UTILISATEUR EST MA TABLE

            puis selectionner tous les utilisateurs qui ont un PC
            SELECT utilisateur FROM PC PC EST MA TABLE

            puis ensuite soustraire le resultat de la deuxieme requete a la premiere requete

            Si vous savez comment faire merci de m'aider
            0
            1. Merci

              je sais c'est le but un PC ne peut appartenir qu'a un seul utilisateur
              c' est une gestion de parc informatique pour une entreprise

              Voila la requete qui marche avec mes tables

              SELECT [Nom]
              FROM utilisateurs
              WHERE Nom NOT IN (SELECT utilisateur FROM pc);

              en fait je ne veut que les noms

              Merci a tous le monde de mavoir aider et surtout a hotrod qui m'a donner la solution
              0
              1. Aidez moi SVP,
                la question imaginer un MCD pour créer des tables: et trouver la requetes en SQL qui affiche le tableau ci-dessou.

                ID---------Article-----------Quatité--------Quté précédente------------------Cumul ------------Date
                ------------------------------------------------------------------------------------------­-------------------------------------
                1 ----------A1 -------------10------------------------0 -------------------------------10----------------01/01/08
                2-----------A1------------- 60----------------------10 -------------------------------70----------------03/01/08
                3-----------A1--------------20----------------------70--------------------------------90--­--------------25/02/08
                4-----------A1------------- 70----------------------90------------------------------160----------------30/03/08
                5-----------A2--------------90---------------------- 0--------------------------------90-----------------03/03/08
                6---------- A2--------------10----------------------90------------------------------100---------------­-08/03/08
                7-----------A2--------------30--------------------100 -----------------------------130----------------30/04/08
                8-----------A2------------- 40--------------------130------------------------------170----------------05/05/08
                9-----------A3------------- 80-----------------------0--------------------------------80----------------15/05/08
                ..........................................................................................­............................
                . . . . . .
                . . . . . .
                . . . . . .
                . . . . . .
                . . . . . .

                le plus important dans ce tableau c'est comment afficher les deux colons "quantité précédente" et "cumul"
                la quantité precedente N = cumul N-1;
                et le cumul doit etre pour une article et pour tous les article c-à-d une fois quand on termine l'article A1 on s'arete et en commence pour article A2:

                remarque : vous pouvez imaginé n'importe table, n'importe MCD:

                seulement il faut afficher le tableau en SQL .
                ( et pas en programation que SQL)

                je suis en stage : mon encadrant m'a donné cette exercice pour tester mes competence; mais vraiment j'ai pas réussi pour la trouvé; j'espere que vous trouver la solution:

                repondre a mon email : "elyse-beach86@hotmail.com"
                .
                0
                1. Contributeur
                  Bonjour,

                  1) Poste ton message dans une discussion à toi plutôt que de venir mettre ça dans une discussion résolue.
                  2) Je te déconseille de mettre ton adresse mail si tu ne veux pas te faire spammer, surtout que tu as créé un profil, donc mieux vaut demander qu'on te MP. De plus, il est toujours mieux de faire participer tout le monde sur le forum directement et ainsi permettre à d'autres d'avoir la solution en cas d'exercice similaire.
                  3) Par principe je ne viendrai pas t'aider puisqu'il s'agit d'une évaluation pour un stage. Sii on te résous ton exercice et que ton encadrant pense alors que tu as le niveau, il va certainement te donner un sujet de stage à la hauteur de ses espérances et non en fonction de ton réel niveau : compte rendu : tu vas encore plus en baver durant tons stage et tu ne progressera pas forcément.
                  Cela dit ça peut intéressé d'autres personnes qui viendront t'aider, auquel cas reporte toi au petit un :)

                  En tout cas bonne chance.
                  0
                  1. Non , ça n'a rien avoir avec mon encadrant; parceque si mon encadrant qui m'a proposé de publié ça dans le forum commentçamarche; l'important pour lui c'est de trouver la requete parceque il meme ne sait pas la solution.

                    ok.
                    0
                  2. @abdim86bonjour
                    tu dois creer une table qui va porter les champs (article qtpdt.....).
                    ensuite il suffit d'utiliser la requete SQL:Select champ1,champ2 from table where "la condition"
                    tu peut aussi consulter Google .il suffit d'ecrire requete selection SQL.
                    bonne chance
                    0