OVH Cloud OVH Cloud

requete dans requete

3 réponses
Avatar
dav
comment dois je procéder pour faire cette sous requete :

je cherche les enregistrements compris entre 2 dates :

sql = "SELECT ladate From Table1 WHERE ladate Between #1/12/2003# And
#12/31/2003#"

et ensuite je veux faire une autre requete à l'intérieur du résultat
précédent :

sql = "select sum (montant) as montant1 from table1"
Set matable = mabase.OpenRecordset(sql)
letotal = matable!montant1

comment dois je procéder ?
merci,
dav

3 réponses

Avatar
Didier
Pourquoi ne pas simplement faire un truc du genre :

SELECT SUM(MonMontant)
FROM MaTable1
WHERE MaDate Between #1/12/2003# And #12/31/2003#"

Cela dit, si toute fois tu souhaites faire des sous-requêtes, ca dépend de
ta base de données.
Certaine base de données accepte les requêtes imbriquées d'autre non.
Exemple d'une requête imbriquée :

SELECT Sum(MonMontant)
FROM (SELECT MonMontant
FROM MaTable1
WHERE MaDate Between #1/12/2003# And #12/31/2003#"
)

Si toute fois les requêtes imbriquées ne sont pas admises sur ta base, bien
la solution du haut me semble correcte...


"dav" a écrit dans le message de news:
4162e73c$0$17794$
comment dois je procéder pour faire cette sous requete :

je cherche les enregistrements compris entre 2 dates :

sql = "SELECT ladate From Table1 WHERE ladate Between #1/12/2003# And
#12/31/2003#"

et ensuite je veux faire une autre requete à l'intérieur du résultat
précédent :

sql = "select sum (montant) as montant1 from table1"
Set matable = mabase.OpenRecordset(sql)
letotal = matable!montant1

comment dois je procéder ?
merci,
dav


Avatar
dav
Didier a écrit :
Pourquoi ne pas simplement faire un truc du genre :

SELECT SUM(MonMontant)
FROM MaTable1
WHERE MaDate Between #1/12/2003# And #12/31/2003#"

Cela dit, si toute fois tu souhaites faire des sous-requêtes, ca dépend de
ta base de données.
Certaine base de données accepte les requêtes imbriquées d'autre non.
Exemple d'une requête imbriquée :

SELECT Sum(MonMontant)
FROM (SELECT MonMontant
FROM MaTable1
WHERE MaDate Between #1/12/2003# And #12/31/2003#"
)

Si toute fois les requêtes imbriquées ne sont pas admises sur ta base, bien
la solution du haut me semble correcte...


"dav" a écrit dans le message de news:
4162e73c$0$17794$

comment dois je procéder pour faire cette sous requete :

je cherche les enregistrements compris entre 2 dates :

sql = "SELECT ladate From Table1 WHERE ladate Between #1/12/2003# And
#12/31/2003#"

et ensuite je veux faire une autre requete à l'intérieur du résultat
précédent :

sql = "select sum (montant) as montant1 from table1"
Set matable = mabase.OpenRecordset(sql)
letotal = matable!montant1

comment dois je procéder ?
merci,
dav







merci pour cette excellente réponse.
mais avec ta méthode, comment gérerais tu la récupération de la date : à
partir d'un textbox, d'un maskedit box, de 3 combo (jour, mois,
année)...???? quel est le mieux. et cette date récupérée il va falloir
que je la mette au format américain et que les mois se situent avant les
jours...peut être plus facile avec 2 combo comme ceci :

madate = combo2 & "/" & combo1 & "/" & combo3

on retrouve un peu la méthode de Géo...que je remercie en passant

merci,
dav
Avatar
John
Bonjour,

Créer une fonction ... Dans ce cas la variable p_mois.



SELECT *

FROM T_FK1RES

WHERE (T_FK1RES.NOATR) IN ("55","56","57","58","59","60","61","62", "63")
AND

PERIODE= p_anmois

ORDER BY T_FK1RES.NOATR;

Cree une petite fonction:

Public Function fn_Valeur()

fn_Valeur = P_AnMois

End Function

et dans la requete, on a

PERIODE = fn_Valeur()

"dav" a écrit dans le message de
news:41639a97$0$17802$
Didier a écrit :
> Pourquoi ne pas simplement faire un truc du genre :
>
> SELECT SUM(MonMontant)
> FROM MaTable1
> WHERE MaDate Between #1/12/2003# And #12/31/2003#"
>
> Cela dit, si toute fois tu souhaites faire des sous-requêtes, ca dépend


de
> ta base de données.
> Certaine base de données accepte les requêtes imbriquées d'autre non.
> Exemple d'une requête imbriquée :
>
> SELECT Sum(MonMontant)
> FROM (SELECT MonMontant
> FROM MaTable1
> WHERE MaDate Between #1/12/2003# And #12/31/2003#"
> )
>
> Si toute fois les requêtes imbriquées ne sont pas admises sur ta base,


bien
> la solution du haut me semble correcte...
>
>
> "dav" a écrit dans le message de news:
> 4162e73c$0$17794$
>
>>comment dois je procéder pour faire cette sous requete :
>>
>>je cherche les enregistrements compris entre 2 dates :
>>
>>sql = "SELECT ladate From Table1 WHERE ladate Between #1/12/2003# And
>>#12/31/2003#"
>>
>>et ensuite je veux faire une autre requete à l'intérieur du résultat
>>précédent :
>>
>>sql = "select sum (montant) as montant1 from table1"
>>Set matable = mabase.OpenRecordset(sql)
>>letotal = matable!montant1
>>
>>comment dois je procéder ?
>>merci,
>>dav
>
>
>
merci pour cette excellente réponse.
mais avec ta méthode, comment gérerais tu la récupération de la date : à
partir d'un textbox, d'un maskedit box, de 3 combo (jour, mois,
année)...???? quel est le mieux. et cette date récupérée il va falloir
que je la mette au format américain et que les mois se situent avant les
jours...peut être plus facile avec 2 combo comme ceci :

madate = combo2 & "/" & combo1 & "/" & combo3

on retrouve un peu la méthode de Géo...que je remercie en passant

merci,
dav