[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.

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

Messagepar Nonna » 02 Avr 2009 14:04

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 édition par Nonna le 03 Avr 2009 08:40, édité 2 fois.
Open office 2.3 sous Windows XP
Nonna
NOOuvel adepte
NOOuvel adepte
 
Message(s) : 19
Inscrit le : 25 Mars 2009 09:31

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

Messagepar Dude » 02 Avr 2009 16:05

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.
AOO 4.1.6 sous Windows 7 Pro x64

Poser une question, c'est bien. Répondre aux autres, c'est encore mieux.
Améliorez AOO et votez pour les issues
Avatar de l’utilisateur
Dude
Grand Maître de l'OOffice
Grand Maître de l'OOffice
 
Message(s) : 20733
Inscrit le : 03 Mars 2006 08:45
Localisation : 127.0.0.1

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

Messagepar Pierre-Yves Samyn » 02 Avr 2009 16:22

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   AgrandirRéduire
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   AgrandirRéduire
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
Pierre-Yves Samyn
Grand Maître de l'OOffice
Grand Maître de l'OOffice
 
Message(s) : 11276
Inscrit le : 02 Mai 2006 09:42

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

Messagepar Nonna » 03 Avr 2009 08:11

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
 
Message(s) : 19
Inscrit le : 25 Mars 2009 09:31

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

Messagepar Nonna » 03 Avr 2009 08:39

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
Nonna
NOOuvel adepte
NOOuvel adepte
 
Message(s) : 19
Inscrit le : 25 Mars 2009 09:31


Retour vers Base de données

Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 2 invité(s)