Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
611 connectés 

  FORUM HardWare.fr
  Windows & Software
  Logiciels

  Requete SQL Access avec conditions sur plusieurs lignes

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Requete SQL Access avec conditions sur plusieurs lignes

n°2951288
cajamarqui​no
Posté le 25-06-2010 à 14:47:23  profilanswer
 

Bonjour,  
 
je travaille sur une table unique où sont regroupées des données représentant différentes choses.
Pour simplifier, je vais illustrer avec un exemple très simple. Disons une table ou on aurait, pour chaque type de produit, le nombre de vente et le nombre d'achat.
 
la table a donc trois colonnes :  
la première avec le nom du produit
la deuxième avec la quantité  
la troisième avec 1 si il s'agit des vente et 2 si il s'agit des achats.  
 
Exemple avec 3 produits A, B et C  
A     1000    1  
A      500    2
B         0     1
B       400    2
C         0     1
C         0     2
 
Est-il possible d'avoir une requete affichant les produits pour lequel les ventes sont nuls et pas les achats ?  
Dans l'exemple  B      400    2      (ou même juste B)
 

mood
Publicité
Posté le 25-06-2010 à 14:47:23  profilanswer
 

n°2951295
olivthill
Posté le 25-06-2010 à 15:15:45  profilanswer
 

Oui, c'est possible.
On prend deux fois la même table, mais on utilise des alias pour séparer ce que l'on veut, sans oublier de les lier sur la clef commune.
 
Par exemple :

Select
       T_achat.nom_du_produit
  from
       table_achat_vente T_achat,
       table_achat_vente T_vente
where
      T_vente.flag_achat_vente = 1
  and T_vente.quantite_achat_ou_vente = 0
  and T_achat.flag_achat_vente = 2
  and T_achat.quantite_achat_ou_vente > 0
  and T_vente.nom_du_produit = T_achat.nom_du_produit


n°2951302
cajamarqui​no
Posté le 25-06-2010 à 16:12:12  profilanswer
 

Merci de la réponse rapide.
 
Voila ma table (achatvente):  
 
N° Champ1 Champ2 Champ3
1 A 1000 1
2 A 500 2
3 B 300 1
4 B 0 2
5 C 0 1
6 C 0 2
 
 
et ma requete :  
 
SELECT T_achat.[1]
FROM achatvente AS T_achat, achatvente AS T_vente
WHERE T_vente.[3]=2 And T_vente.[2]=0 And T_achat.[3]=1 And T_achat.[2]>0 And T_vente.[1]=T_achat.[1];

 
 
Quand je veux exécuter, Access me demande d'entrer la valeur des différents paramètres T_achat.1 ....
et renvoir une table vide si je ne rentre rien.
 
Une idée du problème ?


Message édité par cajamarquino le 25-06-2010 à 16:23:46
n°2951303
olivthill
Posté le 25-06-2010 à 16:31:10  profilanswer
 

Les colones ne s'appellent pas par des numéros mais par des noms.
Entre crochets, il faut mettre les noms des colonnes au lieu de numéros.
Les crochets ne sont nécessaires que si les noms des colonnes contiennent des espaces.

n°2951306
cajamarqui​no
Posté le 25-06-2010 à 16:51:45  profilanswer
 

Oui merci j'avais oublié ce point.
 
ça marche bien merci.
 
Par contre, est-il possible d'exclure une ligne de cette recherche.
Car dans la table sur laquelle je travaille, il y a une première ligne avec le nom des champs comme ci dessous :  
 
N° Champ1 Champ2 Champ3  
1 produit   quantite    type
2    A          1000         1  
3    A            500         2  
4    B            300         1  
5    B              0          2  
6    C              0          1  
7    C              0          2  
 
 
 
Cela fait que Access me renvoit l'erreur suivante :  
 
"Type de données incompatible dans l'exécution du critère."

n°2951312
olivthill
Posté le 25-06-2010 à 17:11:44  profilanswer
 

Oui, on peut exclure cette ligne en appliquant une restriction dans la clause Where.
Par exemple :
SELECT T_achat.[produit]  
FROM achatvente AS T_achat, achatvente AS T_vente  
WHERE T_vente.[type]=2 And T_vente.[quantite]=0 And T_achat.[type]=1 And T_achat.[quantite]>0 And T_vente.[produit]=T_achat.[produit]
and T_achat.[produit] <> "produit";
 
ou
 
and T_achat.[N°] <> 1;
 
Différent est <>, si je me souviens bien, ou !=

n°2951313
cajamarqui​no
Posté le 25-06-2010 à 17:18:54  profilanswer
 

J'y avais pensé mais apparemment la restriction dans le WHERE ne l'empêche pas d'aller tester les champs et donc l'erreur persiste.

n°2951769
SuppotDeSa​Tante
Aka dje69r
Posté le 30-06-2010 à 10:18:15  profilanswer
 

cajamarquino a écrit :

J'y avais pensé mais apparemment la restriction dans le WHERE ne l'empêche pas d'aller tester les champs et donc l'erreur persiste.


 :??:  
 
La réponse d'olivthill est conforme a ta demande...

Citation :

and T_achat.[produit] <> "produit";  
 
ou  
 
and T_achat.[N°] <> 1;


---------------
Soyez malin, louez entre voisins !

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Windows & Software
  Logiciels

  Requete SQL Access avec conditions sur plusieurs lignes

 

Sujets relatifs
onenote :liens hypertextes marchant pour plusieurs ordisCréer des comptes utilisateurs sur Access 2007
Sécurité bases liées sous ACCESS 2007Création d'un web access TS sécurisé
Fonction Somme AccessAccess 2007 - Comment gérer un grand nombre de tables ?
[Exel 2007] Deux lignes à mettre sur une seuleTransfert de donnees en plusieurs morceaux
Plus de sujets relatifs à : Requete SQL Access avec conditions sur plusieurs lignes


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR