Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

la date est elle comprise entre 2 dates

9 réponses
Avatar
Laurent DUB
Bonjour,

j'ai deux tables
une table1 produit à trois champs:

T1_prod (le nom du produit)
T1_prix (monetaire)
T1_dat (date à partir de laquelle est appliqué le prix, qui change tous les
mois par exemple)

une table2 d'achat à deux champs

T2_prod (de Table1)
T2_achat (date de l'achat)

Un probleme simple et certainement bien connu mais je me suis embarqué dans
un tas de requete.
Je peine à trouver une requete Simple qui me donne le bon prix suivant la
date d'achat
Merci.
Lr Db

9 réponses

Avatar
Thierry (ze Titi)
Bonjour Laurent

Je peine à trouver une requete Simple qui me donne le bon prix suivant la
date d'achat
Pas bien compris... Tu veux le prix à la date d'achat ?


Dans ton message <# du lundi
10/09/2007 jour de Sainte Inès, tu as pris l'initiative de nous narrer
les faits suivants:
Bonjour,

j'ai deux tables
une table1 produit à trois champs:

T1_prod (le nom du produit)
T1_prix (monetaire)
T1_dat (date à partir de laquelle est appliqué le prix, qui change tous les
mois par exemple)

une table2 d'achat à deux champs

T2_prod (de Table1)
T2_achat (date de l'achat)

Un probleme simple et certainement bien connu mais je me suis embarqué dans
un tas de requete.
Je peine à trouver une requete Simple qui me donne le bon prix suivant la
date d'achat
Merci.
Lr Db


--
Cordialement,
Thierry

Tout pour réussir avec Access :
http://www.mpfa.info

Avatar
Laurent DUB
Pas bien compris... Tu veux le prix à la date d'achat ?


Parfaitement ,
je me suis donc lancé dans des inférieurs, des min et des max
et me suis perdu dans le temps...

j'ai oublié de préciser:
win Xp
et access 2002
cordialement
Lr Db

Avatar
Thierry (ze Titi)
Bonjour Laurent DUB

J'ai du mal à voir la complication...
SELECT T1_Prix FROM t1 INNER JOIN t2 on T1_Prod=T2_prod WHERE
T1_dat=T2_Achat

Cette requête suppose que tu enregistres le prix d'achat à la date
d'achat.

Dans ton message <# du lundi
10/09/2007 jour de Sainte Inès, tu as pris l'initiative de nous narrer
les faits suivants:
Pas bien compris... Tu veux le prix à la date d'achat ?


Parfaitement ,
je me suis donc lancé dans des inférieurs, des min et des max
et me suis perdu dans le temps...

j'ai oublié de préciser:
win Xp
et access 2002
cordialement
Lr Db


--
Cordialement,
Thierry

Tout pour réussir avec Access :
http://www.mpfa.info


Avatar
jerome crevecoeur
Salutations,
T1_prod (le nom du produit)
T1_prix (monetaire)
T1_dat (date à partir de laquelle est appliqué le prix, qui change to us les
mois par exemple)



strsql=SELECT T1_PRIX FROM T1 WHERE T1_Prod='" & CodeProduit & "' and
T1_Date<=#" madate & "# Order by T1_Dat Desc"

LA première ligne renvoie le dernier prix à la date.

cordialement

Bonjour Laurent DUB

J'ai du mal à voir la complication...
SELECT T1_Prix FROM t1 INNER JOIN t2 on T1_Prod=T2_prod WHERE
T1_dat=T2_Achat

Cette requête suppose que tu enregistres le prix d'achat à la date d'achat.

Dans ton message <# du lundi
10/09/2007 jour de Sainte Inès, tu as pris l'initiative de nous narre r
les faits suivants:
Pas bien compris... Tu veux le prix à la date d'achat ?


Parfaitement ,
je me suis donc lancé dans des inférieurs, des min et des max
et me suis perdu dans le temps...

j'ai oublié de préciser:
win Xp
et access 2002
cordialement
Lr Db






Avatar
Thierry (ze Titi)
Bonjour jerome

J'avais oublié d'inclure le code produit...
Ceci étant dit, il me semble avoir compris que Laurent voulait le prix
à la date d'achat, je pense donc qu'il faut inverser ton ordre de tri
et faire un
strsql = "SELECT TOP 1 T1_PRIX FROM T1 WHERE T1_Prod='" & CodeProduit &
"' and T1_Date<=#" madate & "# Order by T1_Dat Asc"

Non ?

Dans ton message du lundi
10/09/2007 jour de Sainte Inès, tu as pris l'initiative de nous narrer
les faits suivants:
Salutations,
T1_prod (le nom du produit)
T1_prix (monetaire)
T1_dat (date à partir de laquelle est appliqué le prix, qui change tous les
mois par exemple)



strsql=SELECT T1_PRIX FROM T1 WHERE T1_Prod='" & CodeProduit & "' and
T1_Date<=#" madate & "# Order by T1_Dat Desc"

LA première ligne renvoie le dernier prix à la date.

cordialement

Bonjour Laurent DUB

J'ai du mal à voir la complication...
SELECT T1_Prix FROM t1 INNER JOIN t2 on T1_Prod=T2_prod WHERE
T1_dat=T2_Achat

Cette requête suppose que tu enregistres le prix d'achat à la date d'achat.

Dans ton message <# du lundi
10/09/2007 jour de Sainte Inès, tu as pris l'initiative de nous narrer les
faits suivants:
Pas bien compris... Tu veux le prix à la date d'achat ?


Parfaitement ,
je me suis donc lancé dans des inférieurs, des min et des max
et me suis perdu dans le temps...

j'ai oublié de préciser:
win Xp
et access 2002
cordialement
Lr Db





--
Cordialement,
Thierry

Tout pour réussir avec Access :
http://www.mpfa.info




Avatar
Michel_D
Bonjour,

Regarde si cette requête te convient :

SELECT T2.T2_prod, T2.T2_achat, First(T1.T1_prix) AS prix
FROM Table2 AS T2 INNER JOIN Table1 AS T1
ON (T2.T2_prod=T1.T1_prod) And (T2.T2_achat>=T1.T1_dat)
GROUP BY T2.T2_prod, T2.T2_achat
ORDER BY T2.T2_prod, T2.T2_achat;


"Laurent DUB" a écrit dans le message de news:%
Bonjour,

j'ai deux tables
une table1 produit à trois champs:

T1_prod (le nom du produit)
T1_prix (monetaire)
T1_dat (date à partir de laquelle est appliqué le prix, qui change tous les
mois par exemple)

une table2 d'achat à deux champs

T2_prod (de Table1)
T2_achat (date de l'achat)

Un probleme simple et certainement bien connu mais je me suis embarqué dans
un tas de requete.
Je peine à trouver une requete Simple qui me donne le bon prix suivant la
date d'achat
Merci.
Lr Db










Avatar
Pierre CFI [mvp]
bonjour
attention dans les calculs de date en vba Format US utilisé

--
Pierre
MVP Access
***************************************
Conseils MPFA: http://www.mpfa.info/
*********************************************************
"Thierry (ze Titi)" a écrit dans le
message de news:
Bonjour jerome

J'avais oublié d'inclure le code produit...
Ceci étant dit, il me semble avoir compris que Laurent voulait le prix à
la date d'achat, je pense donc qu'il faut inverser ton ordre de tri et
faire un
strsql = "SELECT TOP 1 T1_PRIX FROM T1 WHERE T1_Prod='" & CodeProduit & "'
and T1_Date<=#" madate & "# Order by T1_Dat Asc"

Non ?

Dans ton message du lundi
10/09/2007 jour de Sainte Inès, tu as pris l'initiative de nous narrer les
faits suivants:
Salutations,
T1_prod (le nom du produit)
T1_prix (monetaire)
T1_dat (date à partir de laquelle est appliqué le prix, qui change tous
les
mois par exemple)



strsql=SELECT T1_PRIX FROM T1 WHERE T1_Prod='" & CodeProduit & "' and
T1_Date<=#" madate & "# Order by T1_Dat Desc"

LA première ligne renvoie le dernier prix à la date.

cordialement

Bonjour Laurent DUB

J'ai du mal à voir la complication...
SELECT T1_Prix FROM t1 INNER JOIN t2 on T1_Prod=T2_prod WHERE
T1_dat=T2_Achat

Cette requête suppose que tu enregistres le prix d'achat à la date
d'achat.

Dans ton message <# du lundi
10/09/2007 jour de Sainte Inès, tu as pris l'initiative de nous narrer
les faits suivants:
Pas bien compris... Tu veux le prix à la date d'achat ?


Parfaitement ,
je me suis donc lancé dans des inférieurs, des min et des max
et me suis perdu dans le temps...

j'ai oublié de préciser:
win Xp
et access 2002
cordialement
Lr Db





--
Cordialement,
Thierry

Tout pour réussir avec Access :
http://www.mpfa.info








Avatar
Laurent DUB
Re,
Il me semble avoir reussi mais en utilisant 2 requetes:

Requete1:
SELECT [Table1]![t1_dat]<[Table2]![t2_achat] AS Expr1, Table2.t2_achat,
Max(Table1.t1_dat) AS MaxDet1_dat, Table1.t1_prod
FROM Table1 INNER JOIN Table2 ON Table1.t1_prod = Table2.t2_prod
GROUP BY [Table1]![t1_dat]<[Table2]![t2_achat], Table2.t2_achat,
Table1.t1_prod
HAVING ((([Table1]![t1_dat]<[Table2]![t2_achat])=-1));

puis Requete2:
SELECT Requête1.t1_prod, Sum(Table1.t1_prix) AS SommeDet1_prix
FROM Table1 INNER JOIN Requête1 ON Table1.t1_dat = Requête1.MaxDet1_dat
GROUP BY Requête1.t1_prod;

merci à tous
Lr Db
Avatar
Michel_D
Bonjour,

Dans un autre style :

Requete1:
SELECT T2.T2_prod, T2.T2_achat,
Min(DateDiff("d",T1.T1_dat,T2.T2_achat)) AS DiffDate
FROM Table2 AS T2 INNER JOIN Table1 AS T1
ON (T2.T2_prod=T1.T1_prod) AND (T2.T2_achat>=T1.T1_dat)
GROUP BY T2.T2_prod, T2.T2_achat
ORDER BY T2.T2_prod, T2.T2_achat;

Et Requete2:
SELECT T2.T2_prod, T1.T1_prix
FROM Requete1 AS T2 INNER JOIN Table1 AS T1
ON (T2.DiffDateÚteDiff("d",T1.T1_dat,T2.T2_achat))
AND (T2.T2_prod=T1.T1_prod)
ORDER BY T2.T2_prod;



"Laurent DUB" a écrit dans le message de news:
Re,
Il me semble avoir reussi mais en utilisant 2 requetes:

Requete1:
SELECT [Table1]![t1_dat]<[Table2]![t2_achat] AS Expr1, Table2.t2_achat,
Max(Table1.t1_dat) AS MaxDet1_dat, Table1.t1_prod
FROM Table1 INNER JOIN Table2 ON Table1.t1_prod = Table2.t2_prod
GROUP BY [Table1]![t1_dat]<[Table2]![t2_achat], Table2.t2_achat,
Table1.t1_prod
HAVING ((([Table1]![t1_dat]<[Table2]![t2_achat])=-1));

puis Requete2:
SELECT Requête1.t1_prod, Sum(Table1.t1_prix) AS SommeDet1_prix
FROM Table1 INNER JOIN Requête1 ON Table1.t1_dat = Requête1.MaxDet1_dat
GROUP BY Requête1.t1_prod;

merci à tous
Lr Db