[Résolu]Requêtes sql différence de deux tables

Discussions sur le module de base de données Base et plus particulièrement sur le langage SQL ou sur les connexions aux SGBD tiers.
Les questions sur les macros doivent être postées dans la section dédiée en dessous.

Modérateur : Vilains modOOs

Règles du forum
Cette section est dédiée au module Base et plus particulièrement sur le langage SQL ou sur les connexions aux SGBD tiers. Vous ne devez pas poster ici de questions sur les macros mais utiliser la section éponyme.
Pour accélérer les réponses, vous pouvez mettre en ligne votre base en joignant un fichier ODB : comment faire.
Nonna
NOOuvel adepte
NOOuvel adepte
Messages : 19
Inscription : 25 mars 2009 08:31

[Résolu]Requêtes sql différence de deux tables

Message par Nonna »

Bonjour,

Voici mon problème:

J'ai deux tables: Imprimantes (regroupe l'ensemble d'un parc imprimantes) et Affectation( recense les affectations des imprimantes à des employés)

Ces deux tables ont pour champ commun le champ: "numserie_imprimante".

J'aimerais écrire une requête pour obtenir les numserie_imprimante non contenus dans la table Affectation, en d'autres termes, les numserie_imprimante des imprimantes non afféctées à un employé.

Voici ma requête qui ne marche pas:

Select Imprimantes.numserie_imprimante where not in (select Affectation.numserie_imprimante from Affectation)
Dernière modification par Nonna le 03 avr. 2009 07:40, modifié 2 fois.
Open office 2.3 sous Windows XP
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25190
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: Requêtes sql différence de deux tables

Message par Dude »

Salut,
Nonna a écrit :Voici ma requête qui ne marche pas:
"ne marche pas" ne veut strictement rien dire. Donner les messages d'erreur est plus efficace.
Select Imprimantes.numserie_imprimante where not in (select Affectation.numserie_imprimante from Affectation)
Il n'y a pas de clause FROM dans la 1ere partie de ta requête.
Poser une question, c'est bien. Répondre aux autres, c'est encore mieux.
Améliorez AOO et votez pour les issues
Pierre-Yves Samyn
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 11276
Inscription : 02 mai 2006 08:42

Re: Requêtes sql différence de deux tables

Message par Pierre-Yves Samyn »

Bonjour

Il manque des choses dans :

Select Imprimantes.numserie_imprimante where not in (select Affectation.numserie_imprimante from Affectation)

Le FROM (cf. Dude) et aussi le rappel du champ sur lequel tu "filtres"

Un exemple :

Code : Tout sélectionner

SELECT "Nom", "ID personne" FROM "Personnes" AS "Personnes" WHERE NOT "ID personne" IN ( SELECT "ID personne" FROM "Personnes2" )
On peut également utiliser les "jointures" pour cela... Autre exemple :

Code : Tout sélectionner

SELECT "Personnes"."Nom", "Personnes"."ID personne" FROM { OJ "Personnes2" AS "Personnes2" RIGHT OUTER JOIN "Personnes" AS "Personnes" ON "Personnes2"."ID personne" = "Personnes"."ID personne" } WHERE "Personnes2"."ID personne" IS NULL
Nonna
NOOuvel adepte
NOOuvel adepte
Messages : 19
Inscription : 25 mars 2009 08:31

Re: Requêtes sql différence de deux tables

Message par Nonna »

Bonjour et merci pour les réponses.

Oui effectivement j'ai oublié le "from"... une petite erreur en recopiant ma requête sur le forum...bref...

Je vais essayer vos solution.
Open office 2.3 sous Windows XP
Nonna
NOOuvel adepte
NOOuvel adepte
Messages : 19
Inscription : 25 mars 2009 08:31

Re: Requêtes sql différence de deux tables

Message par Nonna »

Et bien merci beaucoup Jean-Yves, j'ai utilisée ta solution avec les jointures et ça fonctionne parfaitement.
Open office 2.3 sous Windows XP