OVH Cloud OVH Cloud

Je comprends pas une requete, help me

4 réponses
Avatar
Albert
Bonjour =E0 tous,

j'ai une bd avec 549 664 enregist. dans 1 seule table=20
comprenant 6 champs (N1,N2,N3,N4,N5,N6) qui contiennent=20
que des chiffres allant de 1 =E0 90.

J'ai fait une requete qui :
sort tous les enregistrements ou=20
- N2 est different de N1+1 (1ere condition)
ET
- N4 est different de N3+1 (2eme condition)

ce qui donne en sql sous access :
SELECT [T_Solutions _Triees].N1, [T_Solutions _Triees].N2,=20
[T_Solutions _Triees].N3, [T_Solutions _Triees].N4,=20
[T_Solutions _Triees].N5, [T_Solutions _Triees].N6
FROM [T_Solutions _Triees]
WHERE ((([T_Solutions _Triees].N2)<>[N1]+1) AND=20
(([T_Solutions _Triees].N4)<>[N3]+1));

cela sort 409 497 enregistrements

MAIS POUR VERIFIER MON RESULTAT J'AI FAIT LA RQT SUIVANTE :
SELECT [T_Solutions _Triees].N1, [T_Solutions _Triees].N2,=20
[T_Solutions _Triees].N3, [T_Solutions _Triees].N4,=20
[T_Solutions _Triees].N5, [T_Solutions _Triees].N6
FROM [T_Solutions _Triees]
WHERE ((([T_Solutions _Triees].N2)=3D[N1]+1) AND=20
(([T_Solutions _Triees].N4)=3D[N3]+1));

ou ici je comptabilise les enregistrements ou :
- N2 est EGAL =E0 N1+1 (1ere condition)
- N4 est EGAL =E0 N3+1 (2eme condition)

et l=E0 j'obtiens 9202 enregistrements

et la je comprends pas car normalement j'aurai du obtenir =20
beaucoup plus c=E0d la difference entre 549 664 - 409 497=20
enregistrements =3D 140 167 enreg.

MERCI POUR VOTRE AIDE

ALBERT

4 réponses

Avatar
Eric
Bonjour Albert,

le contraire de ton 1er Where
WHERE ((([T_Solutions _Triees].N2)<>[N1]+1) AND
(([T_Solutions _Triees].N4)<>[N3]+1));



ne serait-il pas :

WHERE ((([T_Solutions _Triees].N2)=[N1]+1) OR
(([T_Solutions _Triees].N4)=[N3]+1));

car je pense que la négation de <> est = mais la négation de And est Or


Eric


"Albert" écrivait
news:1321601c443b8$647773d0$:

Bonjour à tous,

j'ai une bd avec 549 664 enregist. dans 1 seule table
comprenant 6 champs (N1,N2,N3,N4,N5,N6) qui contiennent
que des chiffres allant de 1 à 90.

J'ai fait une requete qui :
sort tous les enregistrements ou
- N2 est different de N1+1 (1ere condition)
ET
- N4 est different de N3+1 (2eme condition)

ce qui donne en sql sous access :
SELECT [T_Solutions _Triees].N1, [T_Solutions _Triees].N2,
[T_Solutions _Triees].N3, [T_Solutions _Triees].N4,
[T_Solutions _Triees].N5, [T_Solutions _Triees].N6
FROM [T_Solutions _Triees]


cela sort 409 497 enregistrements

MAIS POUR VERIFIER MON RESULTAT J'AI FAIT LA RQT SUIVANTE :
SELECT [T_Solutions _Triees].N1, [T_Solutions _Triees].N2,
[T_Solutions _Triees].N3, [T_Solutions _Triees].N4,
[T_Solutions _Triees].N5, [T_Solutions _Triees].N6
FROM [T_Solutions _Triees]
WHERE ((([T_Solutions _Triees].N2)=[N1]+1) AND
(([T_Solutions _Triees].N4)=[N3]+1));

ou ici je comptabilise les enregistrements ou :
- N2 est EGAL à N1+1 (1ere condition)
- N4 est EGAL à N3+1 (2eme condition)

et là j'obtiens 9202 enregistrements

et la je comprends pas car normalement j'aurai du obtenir
beaucoup plus càd la difference entre 549 664 - 409 497
enregistrements = 140 167 enreg.

MERCI POUR VOTRE AIDE

ALBERT






Avatar
Raymond [mvp]
Bonjour.

cela pourrait provenir de valeurs Null se trouvant dans N1 ou N2 ou N3 ou
N4.
faut-il prendre les valeurs null pour des 0 ou non ? si oui placer des Nz
dans ta formule.
WHERE (Nz([T_Solutions _Triees].N2,0)=Nz([N1],0)+1) ......;
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Albert" a écrit dans le message de
news:1321601c443b8$647773d0$
Bonjour à tous,

j'ai une bd avec 549 664 enregist. dans 1 seule table
comprenant 6 champs (N1,N2,N3,N4,N5,N6) qui contiennent
que des chiffres allant de 1 à 90.

J'ai fait une requete qui :
sort tous les enregistrements ou
- N2 est different de N1+1 (1ere condition)
ET
- N4 est different de N3+1 (2eme condition)

ce qui donne en sql sous access :
SELECT [T_Solutions _Triees].N1, [T_Solutions _Triees].N2,
[T_Solutions _Triees].N3, [T_Solutions _Triees].N4,
[T_Solutions _Triees].N5, [T_Solutions _Triees].N6
FROM [T_Solutions _Triees]
WHERE ((([T_Solutions _Triees].N2)<>[N1]+1) AND
(([T_Solutions _Triees].N4)<>[N3]+1));

cela sort 409 497 enregistrements

MAIS POUR VERIFIER MON RESULTAT J'AI FAIT LA RQT SUIVANTE :
SELECT [T_Solutions _Triees].N1, [T_Solutions _Triees].N2,
[T_Solutions _Triees].N3, [T_Solutions _Triees].N4,
[T_Solutions _Triees].N5, [T_Solutions _Triees].N6
FROM [T_Solutions _Triees]
WHERE ((([T_Solutions _Triees].N2)=[N1]+1) AND
(([T_Solutions _Triees].N4)=[N3]+1));

ou ici je comptabilise les enregistrements ou :
- N2 est EGAL à N1+1 (1ere condition)
- N4 est EGAL à N3+1 (2eme condition)

et là j'obtiens 9202 enregistrements

et la je comprends pas car normalement j'aurai du obtenir
beaucoup plus càd la difference entre 549 664 - 409 497
enregistrements = 140 167 enreg.

MERCI POUR VOTRE AIDE

ALBERT
Avatar
Jessy Sempere [MVP]
Bonjour vous 3

Je pense qu'Eric à raison...
Donc pour ta requête où les données sont censé être différentes, essais :
SELECT * FROM [T_Solutions _Triees]
WHERE ((N2<>[N1]+1) AND (N4<>[N3]+1));

et pour vérifier, essais :
SELECT * FROM [T_Solutions _Triees]
WHERE ((N2=[N1]+1) OR (N4=[N3]+1));

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Albert" a écrit dans le message news:
1321601c443b8$647773d0$
Bonjour à tous,

j'ai une bd avec 549 664 enregist. dans 1 seule table
comprenant 6 champs (N1,N2,N3,N4,N5,N6) qui contiennent
que des chiffres allant de 1 à 90.

J'ai fait une requete qui :
sort tous les enregistrements ou
- N2 est different de N1+1 (1ere condition)
ET
- N4 est different de N3+1 (2eme condition)

ce qui donne en sql sous access :
SELECT [T_Solutions _Triees].N1, [T_Solutions _Triees].N2,
[T_Solutions _Triees].N3, [T_Solutions _Triees].N4,
[T_Solutions _Triees].N5, [T_Solutions _Triees].N6
FROM [T_Solutions _Triees]
WHERE ((([T_Solutions _Triees].N2)<>[N1]+1) AND
(([T_Solutions _Triees].N4)<>[N3]+1));

cela sort 409 497 enregistrements

MAIS POUR VERIFIER MON RESULTAT J'AI FAIT LA RQT SUIVANTE :
SELECT [T_Solutions _Triees].N1, [T_Solutions _Triees].N2,
[T_Solutions _Triees].N3, [T_Solutions _Triees].N4,
[T_Solutions _Triees].N5, [T_Solutions _Triees].N6
FROM [T_Solutions _Triees]
WHERE ((([T_Solutions _Triees].N2)=[N1]+1) AND
(([T_Solutions _Triees].N4)=[N3]+1));

ou ici je comptabilise les enregistrements ou :
- N2 est EGAL à N1+1 (1ere condition)
- N4 est EGAL à N3+1 (2eme condition)

et là j'obtiens 9202 enregistrements

et la je comprends pas car normalement j'aurai du obtenir
beaucoup plus càd la difference entre 549 664 - 409 497
enregistrements = 140 167 enreg.

MERCI POUR VOTRE AIDE

ALBERT
Avatar
Charles ERNST
La première ni la deuxième ne sortent ni (N2<>N1+1 et N4=N3+1) ni (N2=N1+1
et N4<>N1+1)


"Albert" a écrit dans le message de
news:1321601c443b8$647773d0$
Bonjour à tous,

j'ai une bd avec 549 664 enregist. dans 1 seule table
comprenant 6 champs (N1,N2,N3,N4,N5,N6) qui contiennent
que des chiffres allant de 1 à 90.

J'ai fait une requete qui :
sort tous les enregistrements ou
- N2 est different de N1+1 (1ere condition)
ET
- N4 est different de N3+1 (2eme condition)

ce qui donne en sql sous access :
SELECT [T_Solutions _Triees].N1, [T_Solutions _Triees].N2,
[T_Solutions _Triees].N3, [T_Solutions _Triees].N4,
[T_Solutions _Triees].N5, [T_Solutions _Triees].N6
FROM [T_Solutions _Triees]
WHERE ((([T_Solutions _Triees].N2)<>[N1]+1) AND
(([T_Solutions _Triees].N4)<>[N3]+1));

cela sort 409 497 enregistrements

MAIS POUR VERIFIER MON RESULTAT J'AI FAIT LA RQT SUIVANTE :
SELECT [T_Solutions _Triees].N1, [T_Solutions _Triees].N2,
[T_Solutions _Triees].N3, [T_Solutions _Triees].N4,
[T_Solutions _Triees].N5, [T_Solutions _Triees].N6
FROM [T_Solutions _Triees]
WHERE ((([T_Solutions _Triees].N2)=[N1]+1) AND
(([T_Solutions _Triees].N4)=[N3]+1));

ou ici je comptabilise les enregistrements ou :
- N2 est EGAL à N1+1 (1ere condition)
- N4 est EGAL à N3+1 (2eme condition)

et là j'obtiens 9202 enregistrements

et la je comprends pas car normalement j'aurai du obtenir
beaucoup plus càd la difference entre 549 664 - 409 497
enregistrements = 140 167 enreg.

MERCI POUR VOTRE AIDE

ALBERT