Requete SQL Access avec conditions sur plusieurs lignes - Logiciels - Windows & Software
Marsh Posté le 25-06-2010 à 15:15:45
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 |
Marsh Posté le 25-06-2010 à 16:12:12
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 ?
Marsh Posté le 25-06-2010 à 16:31:10
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.
Marsh Posté le 25-06-2010 à 16:51:45
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."
Marsh Posté le 25-06-2010 à 17:11:44
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 !=
Marsh Posté le 25-06-2010 à 17:18:54
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.
Marsh Posté le 30-06-2010 à 10:18:15
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"; |
Marsh Posté le 25-06-2010 à 14:47:23
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)