Requete avec plusieurs critères

Le
albert
Bonjour
J'ai un petit problème avec la requête suivante qui fonctionne bien, mais
j'aimerais améliorer (problème de pandémie):


PARAMETERS [Date de début(Format aa-mm-jj)] DateTime, [Date de fin(Format
aa-mm-jj)] DateTime;
SELECT CapitaliserNom([lastname]) & ", " & CapitaliserPrénom([firstname]) AS
NomComplet, TBLcotisation.DateCotisation, TBLcotisation.MontantCotisation,
TBLmbcc.JOINDATE, TBLcotisation.ArgentCheque, TBLcotisation.Note1,
TBLcotisation.Note2, TBLcotisation.ID
FROM TBLmbcc RIGHT JOIN TBLcotisation ON TBLmbcc.Numéro =
TBLcotisation.Numéro
WHERE (((TBLcotisation.DateCotisation) Between [date de début(Format
aa-mm-jj)] And [Date de fin(Format aa-mm-jj)]))
ORDER BY TBLcotisation.DateCotisation, TBLcotisation.ID;

J'apprécierais que TBLmbcc.JOINDATE, s'affiche seulement si la date est
supérieure à ">2019-04-01"
si la date est inférieure n'affiche rien.

sans affecter le reste de la requête.

Merci

--
albertri-at-videotron.ca.invalid
Vos réponses
Trier par : date / pertinence
db
Le #26554377
Le 12/09/2020 à 17:18, albert a écrit :
Bonjour
J'ai un petit problème avec la requête suivante qui fonctionne bien,
mais j'aimerais améliorer (problème de pandémie):
PARAMETERS [Date de début(Format aa-mm-jj)] DateTime, [Date de
fin(Format aa-mm-jj)] DateTime;
SELECT CapitaliserNom([lastname]) & ", " &
CapitaliserPrénom([firstname]) AS NomComplet,
TBLcotisation.DateCotisation, TBLcotisation.MontantCotisation,
TBLmbcc.JOINDATE, TBLcotisation.ArgentCheque, TBLcotisation.Note1,
TBLcotisation.Note2, TBLcotisation.ID
FROM TBLmbcc RIGHT JOIN TBLcotisation ON TBLmbcc.Numéro =
TBLcotisation.Numéro
WHERE (((TBLcotisation.DateCotisation) Between [date de début(Format
aa-mm-jj)] And [Date de fin(Format aa-mm-jj)]))
ORDER BY TBLcotisation.DateCotisation, TBLcotisation.ID;
J'apprécierais que  TBLmbcc.JOINDATE,   s'affiche seulement si la date
est supérieure  à ">2019-04-01"
si la date est  inférieure n'affiche rien.
sans affecter le reste de la requête.
Merci


Bonjour,
Essayez en remplaçant :
TBlmbcc.JOINDATE
par
iif(TBLmbcc.JOINDATE>#2019-04-01#,TBLmcc.JOINDATE,"") as JOINDATE
db
Michel__D
Le #26554376
Bonjour,
Le 12/09/2020 à 17:18, albert a écrit :
Bonjour
J'ai un petit problème avec la requête suivante qui fonctionne bien, mais j'aimerais améliorer
(problème de pandémie):
PARAMETERS [Date de début(Format aa-mm-jj)] DateTime, [Date de fin(Format aa-mm-jj)] DateTime;
SELECT CapitaliserNom([lastname]) & ", " & CapitaliserPrénom([firstname]) AS NomComplet,
TBLcotisation.DateCotisation, TBLcotisation.MontantCotisation, TBLmbcc.JOINDATE,
TBLcotisation.ArgentCheque, TBLcotisation.Note1, TBLcotisation.Note2, TBLcotisation.ID
FROM TBLmbcc RIGHT JOIN TBLcotisation ON TBLmbcc.Numéro = TBLcotisation.Numéro
WHERE (((TBLcotisation.DateCotisation) Between [date de début(Format aa-mm-jj)] And [Date de
fin(Format aa-mm-jj)]))
ORDER BY TBLcotisation.DateCotisation, TBLcotisation.ID;
J'apprécierais que  TBLmbcc.JOINDATE,   s'affiche seulement si la date est supérieure  à ">2019-04-01"
si la date est  inférieure n'affiche rien.
sans affecter le reste de la requête.
Merci

Remplace dans ta requête la table TBLmbcc par une requête qui prendra en compte ton critère de date.
albert
Le #26554385
Merci db
À 87 je m'en viens plus vieux qu'avant... voir à la fin
"db" news:5f5cf086$0$4042$
Le 12/09/2020 à 17:18, albert a écrit :
Bonjour
J'ai un petit problème avec la requête suivante qui fonctionne bien, mais
j'aimerais améliorer (problème de pandémie):
PARAMETERS [Date de début(Format aa-mm-jj)] DateTime, [Date de fin(Format
aa-mm-jj)] DateTime;
SELECT CapitaliserNom([lastname]) & ", " & CapitaliserPrénom([firstname])
AS NomComplet, TBLcotisation.DateCotisation,
TBLcotisation.MontantCotisation, TBLmbcc.JOINDATE,
TBLcotisation.ArgentCheque, TBLcotisation.Note1, TBLcotisation.Note2,
TBLcotisation.ID
FROM TBLmbcc RIGHT JOIN TBLcotisation ON TBLmbcc.Numéro =
TBLcotisation.Numéro
WHERE (((TBLcotisation.DateCotisation) Between [date de début(Format
aa-mm-jj)] And [Date de fin(Format aa-mm-jj)]))
ORDER BY TBLcotisation.DateCotisation, TBLcotisation.ID;
J'apprécierais que TBLmbcc.JOINDATE, s'affiche seulement si la date est
supérieure à ">2019-04-01"
si la date est inférieure n'affiche rien.
sans affecter le reste de la requête.
Merci

Bonjour,
Essayez en remplaçant :
TBlmbcc.JOINDATE
par
iif(TBLmbcc.JOINDATE>#2019-04-01#,TBLmcc.JOINDATE,"") as JOINDATE
db

Il y a quelques années vous m'aviez fourni le texte suivant que j'ai utilisé
alors et aussi aujourd'hui, ce qui me fait dire que je vieilli.
Je crois que cela est de la mise en forme conditionnelle pour ACCESS.
,
Nouveaux: VraiFaux([TBLmbcc].[joinDATE]>=(Année(Date())-1) &
"-03-01";[joinDATE];Null)
Ça fait le travail. mais j'ai un nouveau problème, depuis que j'ai ajouté
cela je suis obligé d'entrer deux fois Date de début et la Date de fin.
Quelle peut être la cause ?
Le SQL suit:
PARAMETERS [Date de début(Format aa-mm-jj)] DateTime, [Date de fin(Format
aa-mm-jj)] DateTime;
SELECT CapitaliserNom([lastname]) & ", " & CapitaliserPrénom([firstname]) AS
NomComplet, TBLcotisation.DateCotisation, TBLcotisation.MontantCotisation,
IIf([TBLmbcc].[joinDATE]>=(Year(Date())-1) & "-03-01",[joinDATE],Null) AS
Nouveaux, TBLcotisation.ArgentCheque, TBLcotisation.Note1,
TBLcotisation.Note2, TBLcotisation.ID
FROM TBLmbcc RIGHT JOIN TBLcotisation ON TBLmbcc.Numéro =
TBLcotisation.Numéro
WHERE (((TBLcotisation.DateCotisation) Between [date de début(Format
aa-mm-jj)] And [Date de fin(Format aa-mm-jj)]))
ORDER BY TBLcotisation.DateCotisation, TBLcotisation.ID;
Un grand merci
--
albertri-at-videotron.ca.invalid
db
Le #26554412
Bonjour,
Je ne vois pas pourquoi cette modification provoquerait la double
demande de paramètres, mais je m'interroge sur le RIGHT JOIN de la jointure.
Telle qu'elle est écrite, avec des critères sur la table en jointure
externe, il me semble que le résultat ne doit pas être différent d'une
jointure interne classique - et cette dernière serait plus rapide. Ce
serait intéressant de le vérifier.
db
Le 12/09/2020 à 21:07, albert a écrit :
Merci db
À 87 je m'en viens plus vieux qu'avant... voir à la fin
"db" news:5f5cf086$0$4042$
Le 12/09/2020 à 17:18, albert a écrit :
Bonjour
J'ai un petit problème avec la requête suivante qui fonctionne bien,
mais j'aimerais améliorer (problème de pandémie):
PARAMETERS [Date de début(Format aa-mm-jj)] DateTime, [Date de
fin(Format aa-mm-jj)] DateTime;
SELECT CapitaliserNom([lastname]) & ", " &
CapitaliserPrénom([firstname]) AS NomComplet,
TBLcotisation.DateCotisation, TBLcotisation.MontantCotisation,
TBLmbcc.JOINDATE, TBLcotisation.ArgentCheque, TBLcotisation.Note1,
TBLcotisation.Note2, TBLcotisation.ID
FROM TBLmbcc RIGHT JOIN TBLcotisation ON TBLmbcc.Numéro =
TBLcotisation.Numéro
WHERE (((TBLcotisation.DateCotisation) Between [date de début(Format
aa-mm-jj)] And [Date de fin(Format aa-mm-jj)]))
ORDER BY TBLcotisation.DateCotisation, TBLcotisation.ID;
J'apprécierais que TBLmbcc.JOINDATE, s'affiche seulement si la date
est supérieure à ">2019-04-01"
si la date est inférieure n'affiche rien.
sans affecter le reste de la requête.
Merci

Bonjour,
Essayez en remplaçant :
TBlmbcc.JOINDATE
par
iif(TBLmbcc.JOINDATE>#2019-04-01#,TBLmcc.JOINDATE,"") as JOINDATE
db

Il y a quelques années vous m'aviez fourni le texte suivant que j'ai
utilisé alors et aussi aujourd'hui, ce qui me fait dire que je vieilli.
Je crois que cela est de la mise en forme conditionnelle pour ACCESS.
,
Nouveaux: VraiFaux([TBLmbcc].[joinDATE]>=(Année(Date())-1) &
"-03-01";[joinDATE];Null)
Ça fait le travail. mais j'ai un nouveau problème, depuis que j'ai
ajouté cela je suis obligé d'entrer deux fois Date de début et la Date
de fin.
Quelle peut être la cause ?
Le SQL suit:
PARAMETERS [Date de début(Format aa-mm-jj)] DateTime, [Date de
fin(Format aa-mm-jj)] DateTime;
SELECT CapitaliserNom([lastname]) & ", " &
CapitaliserPrénom([firstname]) AS NomComplet,
TBLcotisation.DateCotisation, TBLcotisation.MontantCotisation,
IIf([TBLmbcc].[joinDATE]>=(Year(Date())-1) & "-03-01",[joinDATE],Null)
AS Nouveaux, TBLcotisation.ArgentCheque, TBLcotisation.Note1,
TBLcotisation.Note2, TBLcotisation.ID
FROM TBLmbcc RIGHT JOIN TBLcotisation ON TBLmbcc.Numéro =
TBLcotisation.Numéro
WHERE (((TBLcotisation.DateCotisation) Between [date de début(Format
aa-mm-jj)] And [Date de fin(Format aa-mm-jj)]))
ORDER BY TBLcotisation.DateCotisation, TBLcotisation.ID;
Un grand merci
albert
Le #26554440
Bonjoour db
"db" news:5f5dce80$0$9516$
Bonjour,
Je ne vois pas pourquoi cette modification provoquerait la double demande
de paramètres, mais je m'interroge sur le RIGHT JOIN de la jointure.
Telle qu'elle est écrite, avec des critères sur la table en jointure
externe, il me semble que le résultat ne doit pas être différent d'une
jointure interne classique - et cette dernière serait plus rapide. Ce
serait intéressant de le vérifier.
db

Je n'ai jamaiss eu de formation en informatique, juste des initiations à
dBaseIII, à Symphonie, et à Databus.
J'étais technicien télégraphiste et remercié en 1989 cause Internet.
En 2007 un confrère me donna un Access 2007, il voulait que je l'aide à
faire ses requêtes ce que réussi à faire en Mode Création et je devais allé
chez lui mettre cela dans son ordinateur.
Sur MPFA j'ai découvert par Eric et Fabien en 2009 que je pouvais
transmettre les requêtes en Mode SQL.
Je fais toujours mes requêtes en mode CRÉATION mais je regarde ensuite
comment Access traduit cela en SQL.
Je n'ai pas encore la compétence pour créer mes requêtes en SQL, mais je
regarde toujours le résultat.
J'ai hâte d'avoir mes deux yeux l'autre sera opéré bientôt, cause pandémie,
j'ai de la difficulté à lire.
Dans ce qui suit la requête #2 fonctionne bien depuis que j'ai déplacé
Nouveaux sur la 2e colonne.
La dernière Modification avec db original génère la demande de paramètres
pour Joindate
(Entrer une valeur de paramètres, TBLMC Joindate)
J'ai changé aussi le guilemets pour NULL pour pouvoir les compter
QRY_Cotisation_payées
Debut de saison 2020 août
PARAMETERS [Date de début(Format aa-mm-jj)] DateTime, [Date de fin(Format
aa-mm-jj)] DateTime;
SELECT CapitaliserNom([lastname]) & ", " & CapitaliserPrénom([firstname]) AS
NomComplet, TBLcotisation.DateCotisation, TBLcotisation.MontantCotisation,
TBLcotisation.ArgentCheque, TBLcotisation.Note1, TBLcotisation.Note2,
TBLcotisation.ID
FROM TBLmbcc RIGHT JOIN TBLcotisation ON TBLmbcc.Numéro =
TBLcotisation.Numéro
WHERE (((TBLcotisation.DateCotisation) Between [date de début(Format
aa-mm-jj)] And [Date de fin(Format aa-mm-jj)]))
ORDER BY TBLcotisation.DateCotisation, TBLcotisation.ID;
Modification #1 Ajout de Joindate
PARAMETERS [Date de début(Format aa-mm-jj)] DateTime, [Date de fin(Format
aa-mm-jj)] DateTime;
SELECT CapitaliserNom([lastname]) & ", " & CapitaliserPrénom([firstname]) AS
NomComplet, TBLcotisation.DateCotisation, TBLcotisation.MontantCotisation,
TBLmbcc.JOINDATE, TBLcotisation.ArgentCheque, TBLcotisation.Note1,
TBLcotisation.Note2, TBLcotisation.ID
FROM TBLmbcc RIGHT JOIN TBLcotisation ON TBLmbcc.Numéro =
TBLcotisation.Numéro
WHERE (((TBLcotisation.DateCotisation) Between [date de début(Format
aa-mm-jj)] And [Date de fin(Format aa-mm-jj)]))
ORDER BY TBLcotisation.DateCotisation, TBLcotisation.ID;
Modification #2 ajou de IIF a joindate
PARAMETERS [Date de début(Format aa-mm-jj)] DateTime, [Date de fin(Format
aa-mm-jj)] DateTime;
SELECT CapitaliserNom([lastname]) & ", " & CapitaliserPrénom([firstname]) AS
NomComplet, IIf([TBLmbcc].[joinDATE]>=(Year(Date())) &
"-03-01",[joinDATE],Null) AS Nouveaux, TBLcotisation.DateCotisation,
TBLcotisation.MontantCotisation, TBLcotisation.ArgentCheque,
TBLcotisation.Note1, TBLcotisation.Note2, TBLcotisation.ID
FROM TBLmbcc RIGHT JOIN TBLcotisation ON TBLmbcc.Numéro =
TBLcotisation.Numéro
WHERE (((TBLcotisation.DateCotisation) Between [date de début(Format
aa-mm-jj)] And [Date de fin(Format aa-mm-jj)]))
ORDER BY TBLcotisation.DateCotisation, TBLcotisation.ID;
Modification avec db original(seule la date a été changée)et"" remplacé par
NULL
PARAMETERS [Date de début(Format aa-mm-jj)] DateTime, [Date de fin(Format
aa-mm-jj)] DateTime;
SELECT CapitaliserNom([lastname]) & ", " & CapitaliserPrénom([firstname]) AS
NomComplet,iif(TBLmbcc.JOINDATE>#2020-03-01#,TBLmcc.JOINDATE,"") as
JOINDATE, TBLcotisation.DateCotisation, TBLcotisation.MontantCotisation,
TBLcotisation.ArgentCheque, TBLcotisation.Note1, TBLcotisation.Note2,
TBLcotisation.ID
FROM TBLmbcc RIGHT JOIN TBLcotisation ON TBLmbcc.Numéro =
TBLcotisation.Numéro
WHERE (((TBLcotisation.DateCotisation) Between [date de début(Format
aa-mm-jj)] And [Date de fin(Format aa-mm-jj)]))
ORDER BY TBLcotisation.DateCotisation, TBLcotisation.ID;
Ungrand merci
albert
--
albertri-at-videotron.ca.invalid
db
Le #26554465
Le 13/09/2020 à 19:21, albert a écrit :
PARAMETERS [Date de début(Format aa-mm-jj)] DateTime, [Date de
fin(Format aa-mm-jj)] DateTime;
SELECT CapitaliserNom([lastname]) & ", " &
CapitaliserPrénom([firstname]) AS
NomComplet,iif(TBLmbcc.JOINDATE>#2020-03-01#,TBLmcc.JOINDATE,"") as
JOINDATE, TBLcotisation.DateCotisation, TBLcotisation.MontantCotisation,
TBLcotisation.ArgentCheque, TBLcotisation.Note1, TBLcotisation.Note2,
TBLcotisation.ID
FROM TBLmbcc RIGHT JOIN TBLcotisation ON TBLmbcc.Numéro =
TBLcotisation.Numéro
WHERE (((TBLcotisation.DateCotisation) Between [date de début(Format
aa-mm-jj)] And [Date de fin(Format aa-mm-jj)]))
ORDER BY TBLcotisation.DateCotisation, TBLcotisation.ID;
Ungrand merci
albert


Bonjour,
Dans cette dernière requête, c'est
iif(TBLmbcc.JOINDATE>#2020-03-01#,TBLmbcc.JOINDATE,"") as JOINDATE
qu'il faut écrire (faute de frappe sur le nom de la table).
db
albert
Le #26554472
Bonjour db
"db" news:5f5f3147$0$13547$
Le 13/09/2020 à 19:21, albert a écrit :
PARAMETERS [Date de début(Format aa-mm-jj)] DateTime, [Date de fin(Format
aa-mm-jj)] DateTime;
SELECT CapitaliserNom([lastname]) & ", " & CapitaliserPrénom([firstname])
AS NomComplet,iif(TBLmbcc.JOINDATE>#2020-03-01#,TBLmcc.JOINDATE,"") as
JOINDATE, TBLcotisation.DateCotisation, TBLcotisation.MontantCotisation,
TBLcotisation.ArgentCheque, TBLcotisation.Note1, TBLcotisation.Note2,
TBLcotisation.ID
FROM TBLmbcc RIGHT JOIN TBLcotisation ON TBLmbcc.Numéro =
TBLcotisation.Numéro
WHERE (((TBLcotisation.DateCotisation) Between [date de début(Format
aa-mm-jj)] And [Date de fin(Format aa-mm-jj)]))
ORDER BY TBLcotisation.DateCotisation, TBLcotisation.ID;
Ungrand merci
albert

Bonjour, Dans cette dernière requête, c'est
iif(TBLmbcc.JOINDATE>#2020-03-01#,TBLmbcc.JOINDATE,"") as JOINDATE
qu'il faut écrire (faute de frappe sur le nom de la table).
db

Merci encore
cela a corrigé la demande de paramètres pour Joindate et la requête
fonctionne très bien.
Amicalement
--
albertri-at-videotron.ca.invalid
Publicité
Poster une réponse
Anonyme