la date est elle comprise entre 2 dates

Le
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Thierry (ze Titi)
Le #6316671
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 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

Laurent DUB
Le #6316621
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

Thierry (ze Titi)
Le #6316611
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 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


jerome crevecoeur
Le #6316601
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 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






Thierry (ze Titi)
Le #6316591
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 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 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




Michel_D
Le #6316581
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"
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










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

--
Pierre
MVP Access
***************************************
Conseils MPFA: http://www.mpfa.info/
*********************************************************
"Thierry (ze Titi)" 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 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 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








Laurent DUB
Le #6316561
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
Michel_D
Le #6316411
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"
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





Publicité
Poster une réponse
Anonyme