OVH Cloud OVH Cloud

Là, pour faire ma requette : je sèche :-(

21 réponses
Avatar
Olivier
Bonjour,

Soit une table T_sejours avec clientID, date_sejour

soit une table T_tarifs as ID, date_debut_tarifs, prix

exemple :

1, '01/01/2004', 10.43
2, '12/02/2004', 22,65
3, '26/06/2004', 27,70


Donc, je voudrais savoir tous les sejours qui ont eu lieu entre deux dates
et pour chacun, le prix correspondant.

Par ex :
Une chambre d'hotel, à une date donnée, a forcément un prix.

Là, pour faire ma requette : je sèche :-(

Merci
Olivier

10 réponses

1 2 3
Avatar
Laurent Moreau
Excuse-moi Fred, mais j'ai du rater un épisode la...

SELECT D.date_sejour,
(SELECT MAX(T.prix)
FROM tarifs_chambre T
WHERE (T.date_debut <= D.date_sejour)) AS Prix
FROM sejours D


1) un gros chouia alors :-)

2) Il est ou le TOP la ? (T de select + O de from + P de prix ? :o)

Laurent.




"Fred BROUARD" wrote in message
news:
1) à quelque chouia sa requête est bonne.

2) c'est une solution de facilité à cause du TOP

3) je te donne la solution, à condition que tu me donne les ordres SQL de


création des tables et les ordres INSERT de
ton jeu d'essais !

A +

Laurent Moreau a écrit:
> Ben non ça m'a pas l'air bon ça...
>
> La tu vas avoir le prix maximum, alors que toi tu veux le dernier prix


avant
> la date que tu donnes.
>
>
>
> Laurent.
>
>
>
> "Olivier" wrote in message
> news:
>
>>YES !!!
>>
>>Avec :
>>
>>SELECT D.date_sejour,
>>(SELECT MAX(T.prix)
>>FROM tarifs_chambre T
>>WHERE (T.date_debut <= D.date_sejour)) AS Prix
>>FROM sejours D
>>
>>Merci beaucoup
>>Olivier
>>
>>
>>
>>"Laurent Moreau" a écrit dans le
>
> message
>
>>de news:c6r21t$ed5$
>>
>>>Tu peux écrire une fdu qui fait:
>>>
>>>SELECT TOP 1 prix FROM T_tarifs WHERE


date_debut_tarifs<=@LaDateDuSejour
>>>ORDER BY date_debut_tarifs DESC
>>>
>>>Laurent.
>>>
>>>
>>>
>>>
>>>"Olivier" wrote in message
>>>news:
>>>
>>>>Bon, résultat après 3 heures...
>>>>
>>>>J'y arrive pas :-(
>>>>
>>>>Donc, je vais me faire une fonction en VB qui me le fera directment
>
> dans
>
>>>mon
>>>
>>>>programme
>>>>
>>>>Merci
>>>>Olivier
>>>>
>>>>
>>>>
>>>>"Fred BROUARD" a écrit dans le message de
>>>>news:uchb0%
>>>>
>>>>>il faut faire une sous requête corrélée :
>>>>>
>>>>>Rechercher le MAX de la date des prix inférieure à la date de résa.
>>>>>
>>>>>A +
>>>>>
>>>>>Olivier a écrit:
>>>>>
>>>>>>Justement, j'ai même ton bouquin (Excellent ! par ailleurs)
>>>>>>C'est pourquoi j'ai même pris l'exemple des chambres d'hotels. :-)
>>>>>>
>>>>>>Mais ton exemple sur ton site :
>>>>>>http://sqlpro.developpez.com/SQL_AZ_2.html#SELECT_math
>>>>>>Ce n'est pas vraiment ce que je souhaite :-(
>>>>>>
>>>>>>Pour moi, le prix d'une chambre, n'est pas rattaché à une chambre,
>>>
>>>mais
>>>
>>>>>>varie dans une période donnée.
>>>>>>Exemple de prix :
>>>>>>A partir du '01/01/2004' vaut 10.43
>>>>>>A partir du '12/02/2004' vaut 22,65
>>>>>>A partir du '26/06/2004' vaut 27,70
>>>>>>
>>>>>>
>>>>>>Donc pour les séjours suivants, je dois obtenir le résultat
>>>>>>
>>>>>>Chambre N°1, le '10/01/2004' prix = 10.43
>>>>>>Chambre N°1, le '12/01/2004' prix = 10.43
>>>>>>Chambre N°1, le '02/02/2004' prix = 10.43
>>>>>>Chambre N°1, le '20/02/2004' prix = 22,65
>>>>>>
>>>>>>Chambre N°2, le '10/04/2004' prix = 22,65
>>>>>>Chambre N°2, le '29/05/2004' prix = 22,65
>>>>>>Chambre N°2, le '01/07/2004' prix = 27,70
>>>>>>
>>>>>>etc...
>>>>>>
>>>>>>En fait mon problème est que le prix d'une chambre se situe
>>
>>forcément
>>
>>>>dans
>>>>
>>>>>>une période entre de deux dates.
>>>>>>J'espère être clair ?
>>>>>>
>>>>>>Merci
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>"Fred BROUARD" a écrit dans le message
>>
>>de
>>
>>>>>>news:%
>>>>>>
>>>>>>
>>>>>>>la il suffit de parcourir mon site, car l'exemple est une gestion
>>>>
>>>>d'hotel
>>>>
>>>>>>avec tranches tarifaires !!!
>>>>>>
>>>>>>
>>>>>>>A +
>>>>>>>
>>>>>>>
>>>>>>>--
>>>>>>>Frédéric BROUARD, MVP Microsoft SQL Server. Langage SQL / Delphi /
>>
>>web
>>
>>>>>>>Livre SQL - col. Référence :
>>
>>http://sqlpro.developpez.com/bookSQL.html
>>
>>>>>>>Le site du SQL, pour débutants et pros :
>>
>>http://sqlpro.developpez.com
>>
>>>>>>>****************** mailto:
>>
>>******************
>>
>>>>>>>Olivier a écrit:
>>>>>>>
>>>>>>>
>>>>>>>>Bonjour,
>>>>>>>>
>>>>>>>>Soit une table T_sejours avec clientID, date_sejour
>>>>>>>>
>>>>>>>>soit une table T_tarifs as ID, date_debut_tarifs, prix
>>>>>>>>
>>>>>>>>exemple :
>>>>>>>>
>>>>>>>>1, '01/01/2004', 10.43
>>>>>>>>2, '12/02/2004', 22,65
>>>>>>>>3, '26/06/2004', 27,70
>>>>>>>>
>>>>>>>>
>>>>>>>>Donc, je voudrais savoir tous les sejours qui ont eu lieu entre
>>
>>deux
>>
>>>>>>dates
>>>>>>
>>>>>>
>>>>>>>>et pour chacun, le prix correspondant.
>>>>>>>>
>>>>>>>>Par ex :
>>>>>>>>Une chambre d'hotel, à une date donnée, a forcément un prix.
>>>>>>>>
>>>>>>>>Là, pour faire ma requette : je sèche :-(
>>>>>>>>
>>>>>>>>Merci
>>>>>>>>Olivier
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>--
>>>>>Frédéric BROUARD, MVP Microsoft SQL Server. Langage SQL / Delphi /
>
> web
>
>>>>>Livre SQL - col. Référence :
>
> http://sqlpro.developpez.com/bookSQL.html
>
>>>>>Le site du SQL, pour débutants et pros :
>
> http://sqlpro.developpez.com
>
>>>>>****************** mailto:
>
> ******************
>
>>>>
>>>
>>
>
>

--
Frédéric BROUARD, MVP Microsoft SQL Server. Langage SQL / Delphi / web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
****************** mailto: ******************



Avatar
[[ Olivier ]]
Voici un script, pour essayer.

Je pensais avoir le résultat voulu ?
Mais, bon, là, je peut pas tester :-(
Ce soir vers 00h00 seulement.

Merci quand même
Olivier



"Fred BROUARD" a écrit dans le message de
news:
1) à quelque chouia sa requête est bonne.

2) c'est une solution de facilité à cause du TOP

3) je te donne la solution, à condition que tu me donne les ordres SQL de


création des tables et les ordres INSERT de
ton jeu d'essais !

A +

Laurent Moreau a écrit:
> Ben non ça m'a pas l'air bon ça...
>
> La tu vas avoir le prix maximum, alors que toi tu veux le dernier prix


avant
> la date que tu donnes.
>
>
>
> Laurent.
>
>
>
> "Olivier" wrote in message
> news:
>
>>YES !!!
>>
>>Avec :
>>
>>SELECT D.date_sejour,
>>(SELECT MAX(T.prix)
>>FROM tarifs_chambre T
>>WHERE (T.date_debut <= D.date_sejour)) AS Prix
>>FROM sejours D
>>
>>Merci beaucoup
>>Olivier
>>
>>
>>
>>"Laurent Moreau" a écrit dans le
>
> message
>
>>de news:c6r21t$ed5$
>>
>>>Tu peux écrire une fdu qui fait:
>>>
>>>SELECT TOP 1 prix FROM T_tarifs WHERE


date_debut_tarifs<=@LaDateDuSejour
>>>ORDER BY date_debut_tarifs DESC
>>>
>>>Laurent.
>>>
>>>
>>>
>>>
>>>"Olivier" wrote in message
>>>news:
>>>
>>>>Bon, résultat après 3 heures...
>>>>
>>>>J'y arrive pas :-(
>>>>
>>>>Donc, je vais me faire une fonction en VB qui me le fera directment
>
> dans
>
>>>mon
>>>
>>>>programme
>>>>
>>>>Merci
>>>>Olivier
>>>>
>>>>
>>>>
>>>>"Fred BROUARD" a écrit dans le message de
>>>>news:uchb0%
>>>>
>>>>>il faut faire une sous requête corrélée :
>>>>>
>>>>>Rechercher le MAX de la date des prix inférieure à la date de résa.
>>>>>
>>>>>A +
>>>>>
>>>>>Olivier a écrit:
>>>>>
>>>>>>Justement, j'ai même ton bouquin (Excellent ! par ailleurs)
>>>>>>C'est pourquoi j'ai même pris l'exemple des chambres d'hotels. :-)
>>>>>>
>>>>>>Mais ton exemple sur ton site :
>>>>>>http://sqlpro.developpez.com/SQL_AZ_2.html#SELECT_math
>>>>>>Ce n'est pas vraiment ce que je souhaite :-(
>>>>>>
>>>>>>Pour moi, le prix d'une chambre, n'est pas rattaché à une chambre,
>>>
>>>mais
>>>
>>>>>>varie dans une période donnée.
>>>>>>Exemple de prix :
>>>>>>A partir du '01/01/2004' vaut 10.43
>>>>>>A partir du '12/02/2004' vaut 22,65
>>>>>>A partir du '26/06/2004' vaut 27,70
>>>>>>
>>>>>>
>>>>>>Donc pour les séjours suivants, je dois obtenir le résultat
>>>>>>
>>>>>>Chambre N°1, le '10/01/2004' prix = 10.43
>>>>>>Chambre N°1, le '12/01/2004' prix = 10.43
>>>>>>Chambre N°1, le '02/02/2004' prix = 10.43
>>>>>>Chambre N°1, le '20/02/2004' prix = 22,65
>>>>>>
>>>>>>Chambre N°2, le '10/04/2004' prix = 22,65
>>>>>>Chambre N°2, le '29/05/2004' prix = 22,65
>>>>>>Chambre N°2, le '01/07/2004' prix = 27,70
>>>>>>
>>>>>>etc...
>>>>>>
>>>>>>En fait mon problème est que le prix d'une chambre se situe
>>
>>forcément
>>
>>>>dans
>>>>
>>>>>>une période entre de deux dates.
>>>>>>J'espère être clair ?
>>>>>>
>>>>>>Merci
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>"Fred BROUARD" a écrit dans le message
>>
>>de
>>
>>>>>>news:%
>>>>>>
>>>>>>
>>>>>>>la il suffit de parcourir mon site, car l'exemple est une gestion
>>>>
>>>>d'hotel
>>>>
>>>>>>avec tranches tarifaires !!!
>>>>>>
>>>>>>
>>>>>>>A +
>>>>>>>
>>>>>>>
>>>>>>>--
>>>>>>>Frédéric BROUARD, MVP Microsoft SQL Server. Langage SQL / Delphi /
>>
>>web
>>
>>>>>>>Livre SQL - col. Référence :
>>
>>http://sqlpro.developpez.com/bookSQL.html
>>
>>>>>>>Le site du SQL, pour débutants et pros :
>>
>>http://sqlpro.developpez.com
>>
>>>>>>>****************** mailto:
>>
>>******************
>>
>>>>>>>Olivier a écrit:
>>>>>>>
>>>>>>>
>>>>>>>>Bonjour,
>>>>>>>>
>>>>>>>>Soit une table T_sejours avec clientID, date_sejour
>>>>>>>>
>>>>>>>>soit une table T_tarifs as ID, date_debut_tarifs, prix
>>>>>>>>
>>>>>>>>exemple :
>>>>>>>>
>>>>>>>>1, '01/01/2004', 10.43
>>>>>>>>2, '12/02/2004', 22,65
>>>>>>>>3, '26/06/2004', 27,70
>>>>>>>>
>>>>>>>>
>>>>>>>>Donc, je voudrais savoir tous les sejours qui ont eu lieu entre
>>
>>deux
>>
>>>>>>dates
>>>>>>
>>>>>>
>>>>>>>>et pour chacun, le prix correspondant.
>>>>>>>>
>>>>>>>>Par ex :
>>>>>>>>Une chambre d'hotel, à une date donnée, a forcément un prix.
>>>>>>>>
>>>>>>>>Là, pour faire ma requette : je sèche :-(
>>>>>>>>
>>>>>>>>Merci
>>>>>>>>Olivier
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>--
>>>>>Frédéric BROUARD, MVP Microsoft SQL Server. Langage SQL / Delphi /
>
> web
>
>>>>>Livre SQL - col. Référence :
>
> http://sqlpro.developpez.com/bookSQL.html
>
>>>>>Le site du SQL, pour débutants et pros :
>
> http://sqlpro.developpez.com
>
>>>>>****************** mailto:
>
> ******************
>
>>>>
>>>
>>
>
>

--
Frédéric BROUARD, MVP Microsoft SQL Server. Langage SQL / Delphi / web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
****************** mailto: ******************





begin 666 Script.sql
M=7-E(&UA<W1E<@T*9V-"@T*8W)E871E(&1A=&%B87-E(&1R96%M:&]T96P-
M"F=O#0H-"F-R96%T92!T86)L92!T87)I9G,-""FED($E.5"!)1$5.5$E4
M62P-"F1A=&5?9&$%4151)344L#0IP<FEX($E.5 T**3L-"@T*#0IC
M<F5A=&4@=&%B;&4@<V5J;W5R<PT** T*:($E$14Y42519+ T*9&%T
M95]S96IO=7(@1$%4151)344-"BD[#0H-"D=/#0H-"FEN<V5R="!I;G1O('1A
M<FEF<R H9&%T95]D96)U="P@<')I>"%,5453("@G,#$O,#$O,C P,R<L
M,3 I#0II;G-E<G0@:6YT;R!T87)I9G,@*&1A=&5?9&5BpL('!R:(%9!
M3%5%4R H)S$P+S R+S(P,#,G+#(P*0T*:6YS97)T(&EN=&@=&%R:69S("AD
M871E7V1E8G5T+"!P<FEX*2!604Q515,@*"<S,"P-2R,# S)RPS,"D-"FEN
M<V5R="!I;G1O('1A<FEF<R H9&%T95]D96)U="P@<')I>"%,5453("@G
M,34O,#8O,C P,R<L-# I#0II;G-E<G0@:6YT;R!T87)I9G,@*&1A=&5?9&5B
MpL('!R:(%9!3%5%4R H)S$W+S$P+S(P,#,G+#4P*0T*#0IG;PT*#0II
M;G-E<G0@:6YT;R!S96IO=7)S("AD871E7W-E:F]U%,5453("@G,3 O
M,#$O,C P,R<I("TM('-O:70@,3 @975R;W,-"FEN<V5R="!I;G1O('-E:F]U
M<G,@*&1A=&5?<V5J;W5R*2!604Q515,@*"<Q,2P,2R,# S)RD@+2T@<V]I
M=" Q,"!E=7)O<PT*:6YS97)T(&EN=&@<V5J;W5R<R H9&%T95]S96IO=7(I
M(%9!3%5%4R H)S$R+S Q+S(P,#,G*2 M+2!S;VET(#$P(&5U<F]S#0II;G-E
M<G0@:6YT;R!S96IO=7)S("AD871E7W-E:F]U%,5453("@G,C O,#(O
M,C P,R<I("TM('-O:70@,C @975R;W,-"FEN<V5R="!I;G1O('-E:F]U<G,@
M*&1A=&5?<V5J;W5R*2!604Q515,@*"<R-2P,BR,# S)RD@+2T@<V]I=" R
M,"!E=7)O<PT*:6YS97)T(&EN=&@<V5J;W5R<R H9&%T95]S96IO=7(I(%9!
M3%5%4R H)S(U+S U+S(P,#,G*2 M+2!S;VET(#(P(&5U<F]S#0II;G-E<G0@
M:6YT;R!S96IO=7)S("AD871E7W-E:F]U%,5453("@G,#$O,#8O,C P
M,R<I("TM('-O:70@,S @975R;W,-"FEN<V5R="!I;G1O('-E:F]U<G,@*&1A
M=&5?<V5J;W5R*2!604Q515,@*"<Q-2P-BR,# S)RD@+2T@<V]I=" S,"!E
M=7)O<PT*:6YS97)T(&EN=&@<V5J;W5R<R H9&%T95]S96IO=7(I(%9!3%5%
M4R H)S$Y+S W+S(P,#,G*2 M+2!S;VET(#0P(&5U<F]S#0II;G-E<G0@:6YT
M;R!S96IO=7)S("AD871E7W-E:F]U%,5453("@G,C0O,#@O,C P,R<I
M("TM('-O:# @975R;W,-"FEN<V5R="!I;G1O('-E:F]U<G,@*&1A=&5?
M<V5J;W5R*2!604Q515,@*"<Q-RP.2R,# S)RD@+2T@<V]I=" T,"!E=7)O
M<PT*:6YS97)T(&EN=&@<V5J;W5R<R H9&%T95]S96IO=7(I(%9!3%5%4R H
M)S$W+S$P+S(P,#,G*2 M+2!S;VET(#4P(&5U<F]S#0II;G-E<G0@:6YT;R!S
M96IO=7)S("AD871E7W-E:F]U%,5453("@G,3$O,3(O,C P,R<I("TM
M('-O: @975R;W,-"FEN<V5R="!I;G1O('-E:F]U<G,@*&1A=&5?<V5J
M;W5R*2!604Q515,@*"<S,2Q,BR,# S)RD@+2T@<V]I=" U,"!E=7)O<PT*
M:6YS97)T(&EN=&@<V5J;W5R<R H9&%T95]S96IO=7(I(%9!3%5%4R H)S(W
M+S T+S(P,#0G*2 M+2!S;VET(#4P(&5U<F]S#0H-"D=/#0H-"@T*4T5,14-4
M($0N9&%T95]S96IO=7(L*%-%3$5#5"!"YP<FEX*0T*1E)/32 @=&%R
M:69S(%0-"E=(15)%("A4+F1A=&5?9&5Bp@/#"YD871E7W-E:F]U<BDI
F($%3(%!R:"D923TT@<V5J;W5R<R!$#0H-"F=O#0H-"@T*#0H`
`
end
Avatar
[[ Olivier ]]
Dans ton message précédent tu disais :

<
il faut faire une sous requête corrélée :
Rechercher le MAX de la date des prix inférieure à la date de résa.




c'est pas ce que j'ai fais dans ma requete ?

Merci
Olivier

"Fred BROUARD" a écrit dans le message de
news:
1) à quelque chouia sa requête est bonne.

2) c'est une solution de facilité à cause du TOP

3) je te donne la solution, à condition que tu me donne les ordres SQL de


création des tables et les ordres INSERT de
ton jeu d'essais !

A +

Laurent Moreau a écrit:
> Ben non ça m'a pas l'air bon ça...
>
> La tu vas avoir le prix maximum, alors que toi tu veux le dernier prix


avant
> la date que tu donnes.
>
>
>
> Laurent.
>
>
>
> "Olivier" wrote in message
> news:
>
>>YES !!!
>>
>>Avec :
>>
>>SELECT D.date_sejour,
>>(SELECT MAX(T.prix)
>>FROM tarifs_chambre T
>>WHERE (T.date_debut <= D.date_sejour)) AS Prix
>>FROM sejours D
>>
>>Merci beaucoup
>>Olivier
>>
>>
>>
>>"Laurent Moreau" a écrit dans le
>
> message
>
>>de news:c6r21t$ed5$
>>
>>>Tu peux écrire une fdu qui fait:
>>>
>>>SELECT TOP 1 prix FROM T_tarifs WHERE


date_debut_tarifs<=@LaDateDuSejour
>>>ORDER BY date_debut_tarifs DESC
>>>
>>>Laurent.
>>>
>>>
>>>
>>>
>>>"Olivier" wrote in message
>>>news:
>>>
>>>>Bon, résultat après 3 heures...
>>>>
>>>>J'y arrive pas :-(
>>>>
>>>>Donc, je vais me faire une fonction en VB qui me le fera directment
>
> dans
>
>>>mon
>>>
>>>>programme
>>>>
>>>>Merci
>>>>Olivier
>>>>
>>>>
>>>>
>>>>"Fred BROUARD" a écrit dans le message de
>>>>news:uchb0%
>>>>
>>>>>il faut faire une sous requête corrélée :
>>>>>
>>>>>Rechercher le MAX de la date des prix inférieure à la date de résa.
>>>>>
>>>>>A +
>>>>>
>>>>>Olivier a écrit:
>>>>>
>>>>>>Justement, j'ai même ton bouquin (Excellent ! par ailleurs)
>>>>>>C'est pourquoi j'ai même pris l'exemple des chambres d'hotels. :-)
>>>>>>
>>>>>>Mais ton exemple sur ton site :
>>>>>>http://sqlpro.developpez.com/SQL_AZ_2.html#SELECT_math
>>>>>>Ce n'est pas vraiment ce que je souhaite :-(
>>>>>>
>>>>>>Pour moi, le prix d'une chambre, n'est pas rattaché à une chambre,
>>>
>>>mais
>>>
>>>>>>varie dans une période donnée.
>>>>>>Exemple de prix :
>>>>>>A partir du '01/01/2004' vaut 10.43
>>>>>>A partir du '12/02/2004' vaut 22,65
>>>>>>A partir du '26/06/2004' vaut 27,70
>>>>>>
>>>>>>
>>>>>>Donc pour les séjours suivants, je dois obtenir le résultat
>>>>>>
>>>>>>Chambre N°1, le '10/01/2004' prix = 10.43
>>>>>>Chambre N°1, le '12/01/2004' prix = 10.43
>>>>>>Chambre N°1, le '02/02/2004' prix = 10.43
>>>>>>Chambre N°1, le '20/02/2004' prix = 22,65
>>>>>>
>>>>>>Chambre N°2, le '10/04/2004' prix = 22,65
>>>>>>Chambre N°2, le '29/05/2004' prix = 22,65
>>>>>>Chambre N°2, le '01/07/2004' prix = 27,70
>>>>>>
>>>>>>etc...
>>>>>>
>>>>>>En fait mon problème est que le prix d'une chambre se situe
>>
>>forcément
>>
>>>>dans
>>>>
>>>>>>une période entre de deux dates.
>>>>>>J'espère être clair ?
>>>>>>
>>>>>>Merci
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>"Fred BROUARD" a écrit dans le message
>>
>>de
>>
>>>>>>news:%
>>>>>>
>>>>>>
>>>>>>>la il suffit de parcourir mon site, car l'exemple est une gestion
>>>>
>>>>d'hotel
>>>>
>>>>>>avec tranches tarifaires !!!
>>>>>>
>>>>>>
>>>>>>>A +
>>>>>>>
>>>>>>>
>>>>>>>--
>>>>>>>Frédéric BROUARD, MVP Microsoft SQL Server. Langage SQL / Delphi /
>>
>>web
>>
>>>>>>>Livre SQL - col. Référence :
>>
>>http://sqlpro.developpez.com/bookSQL.html
>>
>>>>>>>Le site du SQL, pour débutants et pros :
>>
>>http://sqlpro.developpez.com
>>
>>>>>>>****************** mailto:
>>
>>******************
>>
>>>>>>>Olivier a écrit:
>>>>>>>
>>>>>>>
>>>>>>>>Bonjour,
>>>>>>>>
>>>>>>>>Soit une table T_sejours avec clientID, date_sejour
>>>>>>>>
>>>>>>>>soit une table T_tarifs as ID, date_debut_tarifs, prix
>>>>>>>>
>>>>>>>>exemple :
>>>>>>>>
>>>>>>>>1, '01/01/2004', 10.43
>>>>>>>>2, '12/02/2004', 22,65
>>>>>>>>3, '26/06/2004', 27,70
>>>>>>>>
>>>>>>>>
>>>>>>>>Donc, je voudrais savoir tous les sejours qui ont eu lieu entre
>>
>>deux
>>
>>>>>>dates
>>>>>>
>>>>>>
>>>>>>>>et pour chacun, le prix correspondant.
>>>>>>>>
>>>>>>>>Par ex :
>>>>>>>>Une chambre d'hotel, à une date donnée, a forcément un prix.
>>>>>>>>
>>>>>>>>Là, pour faire ma requette : je sèche :-(
>>>>>>>>
>>>>>>>>Merci
>>>>>>>>Olivier
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>--
>>>>>Frédéric BROUARD, MVP Microsoft SQL Server. Langage SQL / Delphi /
>
> web
>
>>>>>Livre SQL - col. Référence :
>
> http://sqlpro.developpez.com/bookSQL.html
>
>>>>>Le site du SQL, pour débutants et pros :
>
> http://sqlpro.developpez.com
>
>>>>>****************** mailto:
>
> ******************
>
>>>>
>>>
>>
>
>

--
Frédéric BROUARD, MVP Microsoft SQL Server. Langage SQL / Delphi / web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
****************** mailto: ******************



Avatar
Fred BROUARD
La solution avec le TOP !

SELECT D.date_sejour,(SELECT TOP 1 prix
FROM tarifs T
WHERE date_debut <= D.date_sejour
ORDER BY prix DESC) AS Prix
FROM sejours D

A +


--
Frédéric BROUARD, MVP Microsoft SQL Server. Langage SQL / Delphi / web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
****************** mailto: ******************
Avatar
Olivier
Merci

J'obtiens le même résultat avec ma requête, non ?
SELECT D.date_sejour,
(SELECT MAX(T.prix)
FROM tarifs_chambre T
WHERE (T.date_debut <= D.date_sejour)) AS Prix
FROM sejours D

Le TOP 1 avec ton ORDER BY prix DESC revient à faire un MAX ?

Enfin, ne perds plus de temps avec çà.
Ca marche, c'est le plus important, et je t'en remercie, ainsi que Laurent.

PS : des projets de livre ;-)

Merci
Olivier


"Fred BROUARD" a écrit dans le message de
news:
La solution avec le TOP !

SELECT D.date_sejour,(SELECT TOP 1 prix
FROM tarifs T
WHERE date_debut <= D.date_sejour
ORDER BY prix DESC) AS Prix
FROM sejours D

A +


--
Frédéric BROUARD, MVP Microsoft SQL Server. Langage SQL / Delphi / web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
****************** mailto: ******************



Avatar
Laurent Moreau
Avec Max(T.prix) ce n'est pas bon: il renvoie le prix le plus élevé, alors
que toi tu recherche le dernier prix avant une date précise:

ex:
1 jan: 10?
5 fev: 20 ?
8 mars: 15?
9 avril: 35?


Tu cherches a obtenir le prix le 1 avril (si j'ai bien compris ton
probleme au départ)

avec max(prix) tu vas obtenir: 20? car tu cherches dans les prix antérieur
au 1 avril, ce n'est pas bon.

La requete de Fred (avec le TOP 1) va bien te chercher le dernier prix
antérieur au 1 avril, soit 15?



Laurent.





"Olivier" wrote in message
news:
Merci

J'obtiens le même résultat avec ma requête, non ?
SELECT D.date_sejour,
(SELECT MAX(T.prix)
FROM tarifs_chambre T
WHERE (T.date_debut <= D.date_sejour)) AS Prix
FROM sejours D

Le TOP 1 avec ton ORDER BY prix DESC revient à faire un MAX ?

Enfin, ne perds plus de temps avec çà.
Ca marche, c'est le plus important, et je t'en remercie, ainsi que


Laurent.

PS : des projets de livre ;-)

Merci
Olivier


"Fred BROUARD" a écrit dans le message de
news:
> La solution avec le TOP !
>
> SELECT D.date_sejour,(SELECT TOP 1 prix
> FROM tarifs T
> WHERE date_debut <= D.date_sejour
> ORDER BY prix DESC) AS Prix
> FROM sejours D
>
> A +
>
>
> --
> Frédéric BROUARD, MVP Microsoft SQL Server. Langage SQL / Delphi / web
> Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
> Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
> ****************** mailto: ******************
>




Avatar
Olivier
???
Je dois surement mettre mal exprimé.
Copie le Script SQL plus-bàs et regarde ? Ou alors je suis vraiment fatigué
:-(
C'est vrai que par ecrit c'est toujours dur d'expliquer un problème.

Ma table TARIFS exprime des prix " à partir d'une date "

Ex:
A partir du 01 Janvier le prix est de 10 euros
A partir du 15 Février le prix est de 20 euros
A partir du 20 Mars le prix est de 30 euros
A partir du 20 Avril le prix est de 40 euros

Donc, quelque soit la requete que j'utilise (MAX ou TOP) pour les dates
suivantes :

10 Février , j'obtient bien la valeur 10
20 Février , j'obtient bien la valeur 20
01 Avril, j'obtient bien la valeur 30
25 Avril, j'obtient bien la valeur 40

Non ?

-- SCRIPT SQL ---------------------------------
USE master
GO

IF EXISTS (SELECT * FROM information_schema.schemata WHERE catalog_name 'monhotel')
ALTER DATABASE monhotel SET SINGLE_USER WITH ROLLBACK IMMEDIATE
DROP DATABASE monhotel
GO

CREATE DATABASE monhotel
GO

USE monhotel
GO

create table tarifs
(
date_debut DATETIME,
prix INT
);
GO

create table sejours
(
date_sejour DATETIME
);
GO


insert into tarifs (date_debut, prix) VALUES ('01/01/2003',10);
insert into tarifs (date_debut, prix) VALUES ('15/02/2003',20);
insert into tarifs (date_debut, prix) VALUES ('20/03/2003',30);
insert into tarifs (date_debut, prix) VALUES ('20/04/2003',40);

GO

insert into sejours (date_sejour) VALUES ('10/02/2003') ;
insert into sejours (date_sejour) VALUES ('20/02/2003') ;
insert into sejours (date_sejour) VALUES ('01/04/2003') ;
insert into sejours (date_sejour) VALUES ('25/04/2003') ;

GO


-- REQUETE AVEC TOP
SELECT S.date_sejour,(SELECT TOP 1 prix
FROM tarifs T
WHERE date_debut <= S.date_sejour
ORDER BY prix DESC) AS Prix
FROM sejours S

GO

-- REQUETE AVEC MAX
SELECT S.date_sejour, (SELECT MAX(T.prix)
FROM tarifs T
WHERE (T.date_debut <= S.date_sejour)) AS Prix
FROM sejours S

GO


-- FIN SCRIPT SQL ----------------------------



"Laurent Moreau" a écrit dans le message
de news:c6t5un$6e3$
Avec Max(T.prix) ce n'est pas bon: il renvoie le prix le plus élevé, alors
que toi tu recherche le dernier prix avant une date précise:

ex:
1 jan: 10?
5 fev: 20 ?
8 mars: 15?
9 avril: 35?


Tu cherches a obtenir le prix le 1 avril (si j'ai bien compris ton
probleme au départ)

avec max(prix) tu vas obtenir: 20? car tu cherches dans les prix


antérieur
au 1 avril, ce n'est pas bon.

La requete de Fred (avec le TOP 1) va bien te chercher le dernier prix
antérieur au 1 avril, soit 15?



Laurent.





"Olivier" wrote in message
news:
> Merci
>
> J'obtiens le même résultat avec ma requête, non ?
> SELECT D.date_sejour,
> (SELECT MAX(T.prix)
> FROM tarifs_chambre T
> WHERE (T.date_debut <= D.date_sejour)) AS Prix
> FROM sejours D
>
> Le TOP 1 avec ton ORDER BY prix DESC revient à faire un MAX ?
>
> Enfin, ne perds plus de temps avec çà.
> Ca marche, c'est le plus important, et je t'en remercie, ainsi que
Laurent.
>
> PS : des projets de livre ;-)
>
> Merci
> Olivier
>
>
> "Fred BROUARD" a écrit dans le message de
> news:
> > La solution avec le TOP !
> >
> > SELECT D.date_sejour,(SELECT TOP 1 prix
> > FROM tarifs T
> > WHERE date_debut <= D.date_sejour
> > ORDER BY prix DESC) AS Prix
> > FROM sejours D
> >
> > A +
> >
> >
> > --
> > Frédéric BROUARD, MVP Microsoft SQL Server. Langage SQL / Delphi / web
> > Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
> > Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
> > ****************** mailto: ******************
> >
>
>




Avatar
Laurent Moreau
Ben non, ton exemple marche car tes prix sont croissants.
Si tu saisies des prix décroissants tu verras que TOP marche et que MAX ne
marche pas:

A partir du 01 Janvier le prix est de 40 euros
A partir du 15 Février le prix est de 30 euros
A partir du 20 Mars le prix est de 20 euros
A partir du 20 Avril le prix est de 10 euros




Laurent.





"Olivier" wrote in message
news:%
???
Je dois surement mettre mal exprimé.
Copie le Script SQL plus-bàs et regarde ? Ou alors je suis vraiment


fatigué
:-(
C'est vrai que par ecrit c'est toujours dur d'expliquer un problème.

Ma table TARIFS exprime des prix " à partir d'une date "

Ex:
A partir du 01 Janvier le prix est de 10 euros
A partir du 15 Février le prix est de 20 euros
A partir du 20 Mars le prix est de 30 euros
A partir du 20 Avril le prix est de 40 euros

Donc, quelque soit la requete que j'utilise (MAX ou TOP) pour les dates
suivantes :

10 Février , j'obtient bien la valeur 10
20 Février , j'obtient bien la valeur 20
01 Avril, j'obtient bien la valeur 30
25 Avril, j'obtient bien la valeur 40

Non ?

-- SCRIPT SQL ---------------------------------
USE master
GO

IF EXISTS (SELECT * FROM information_schema.schemata WHERE catalog_name > 'monhotel')
ALTER DATABASE monhotel SET SINGLE_USER WITH ROLLBACK IMMEDIATE
DROP DATABASE monhotel
GO

CREATE DATABASE monhotel
GO

USE monhotel
GO

create table tarifs
(
date_debut DATETIME,
prix INT
);
GO

create table sejours
(
date_sejour DATETIME
);
GO


insert into tarifs (date_debut, prix) VALUES ('01/01/2003',10);
insert into tarifs (date_debut, prix) VALUES ('15/02/2003',20);
insert into tarifs (date_debut, prix) VALUES ('20/03/2003',30);
insert into tarifs (date_debut, prix) VALUES ('20/04/2003',40);

GO

insert into sejours (date_sejour) VALUES ('10/02/2003') ;
insert into sejours (date_sejour) VALUES ('20/02/2003') ;
insert into sejours (date_sejour) VALUES ('01/04/2003') ;
insert into sejours (date_sejour) VALUES ('25/04/2003') ;

GO


-- REQUETE AVEC TOP
SELECT S.date_sejour,(SELECT TOP 1 prix
FROM tarifs T
WHERE date_debut <= S.date_sejour
ORDER BY prix DESC) AS Prix
FROM sejours S

GO

-- REQUETE AVEC MAX
SELECT S.date_sejour, (SELECT MAX(T.prix)
FROM tarifs T
WHERE (T.date_debut <= S.date_sejour)) AS Prix
FROM sejours S

GO


-- FIN SCRIPT SQL ----------------------------



"Laurent Moreau" a écrit dans le


message
de news:c6t5un$6e3$
> Avec Max(T.prix) ce n'est pas bon: il renvoie le prix le plus élevé,


alors
> que toi tu recherche le dernier prix avant une date précise:
>
> ex:
> 1 jan: 10?
> 5 fev: 20 ?
> 8 mars: 15?
> 9 avril: 35?
>
>
> Tu cherches a obtenir le prix le 1 avril (si j'ai bien compris ton
> probleme au départ)
>
> avec max(prix) tu vas obtenir: 20? car tu cherches dans les prix
antérieur
> au 1 avril, ce n'est pas bon.
>
> La requete de Fred (avec le TOP 1) va bien te chercher le dernier prix
> antérieur au 1 avril, soit 15?
>
>
>
> Laurent.
>
>
>
>
>
> "Olivier" wrote in message
> news:
> > Merci
> >
> > J'obtiens le même résultat avec ma requête, non ?
> > SELECT D.date_sejour,
> > (SELECT MAX(T.prix)
> > FROM tarifs_chambre T
> > WHERE (T.date_debut <= D.date_sejour)) AS Prix
> > FROM sejours D
> >
> > Le TOP 1 avec ton ORDER BY prix DESC revient à faire un MAX ?
> >
> > Enfin, ne perds plus de temps avec çà.
> > Ca marche, c'est le plus important, et je t'en remercie, ainsi que
> Laurent.
> >
> > PS : des projets de livre ;-)
> >
> > Merci
> > Olivier
> >
> >
> > "Fred BROUARD" a écrit dans le message de
> > news:
> > > La solution avec le TOP !
> > >
> > > SELECT D.date_sejour,(SELECT TOP 1 prix
> > > FROM tarifs T
> > > WHERE date_debut <= D.date_sejour
> > > ORDER BY prix DESC) AS Prix
> > > FROM sejours D
> > >
> > > A +
> > >
> > >
> > > --
> > > Frédéric BROUARD, MVP Microsoft SQL Server. Langage SQL / Delphi /


web
> > > Livre SQL - col. Référence :


http://sqlpro.developpez.com/bookSQL.html
> > > Le site du SQL, pour débutants et pros :


http://sqlpro.developpez.com
> > > ****************** mailto:


******************
> > >
> >
> >
>
>




Avatar
Olivier
Ah !!!!!!!!

Mouaip, j'avais pas essayé :-(

Merci.
Donc, fin de la discussion.

Olivier


"Laurent Moreau" a écrit dans le message
de news:c6tcts$9jb$
Ben non, ton exemple marche car tes prix sont croissants.
Si tu saisies des prix décroissants tu verras que TOP marche et que MAX ne
marche pas:

> A partir du 01 Janvier le prix est de 40 euros
> A partir du 15 Février le prix est de 30 euros
> A partir du 20 Mars le prix est de 20 euros
> A partir du 20 Avril le prix est de 10 euros


Laurent.





"Olivier" wrote in message
news:%
> ???
> Je dois surement mettre mal exprimé.
> Copie le Script SQL plus-bàs et regarde ? Ou alors je suis vraiment
fatigué
> :-(
> C'est vrai que par ecrit c'est toujours dur d'expliquer un problème.
>
> Ma table TARIFS exprime des prix " à partir d'une date "
>
> Ex:
> A partir du 01 Janvier le prix est de 10 euros
> A partir du 15 Février le prix est de 20 euros
> A partir du 20 Mars le prix est de 30 euros
> A partir du 20 Avril le prix est de 40 euros
>
> Donc, quelque soit la requete que j'utilise (MAX ou TOP) pour les dates
> suivantes :
>
> 10 Février , j'obtient bien la valeur 10
> 20 Février , j'obtient bien la valeur 20
> 01 Avril, j'obtient bien la valeur 30
> 25 Avril, j'obtient bien la valeur 40
>
> Non ?
>
> -- SCRIPT SQL ---------------------------------
> USE master
> GO
>
> IF EXISTS (SELECT * FROM information_schema.schemata WHERE catalog_name


> > 'monhotel')
> ALTER DATABASE monhotel SET SINGLE_USER WITH ROLLBACK IMMEDIATE
> DROP DATABASE monhotel
> GO
>
> CREATE DATABASE monhotel
> GO
>
> USE monhotel
> GO
>
> create table tarifs
> (
> date_debut DATETIME,
> prix INT
> );
> GO
>
> create table sejours
> (
> date_sejour DATETIME
> );
> GO
>
>
> insert into tarifs (date_debut, prix) VALUES ('01/01/2003',10);
> insert into tarifs (date_debut, prix) VALUES ('15/02/2003',20);
> insert into tarifs (date_debut, prix) VALUES ('20/03/2003',30);
> insert into tarifs (date_debut, prix) VALUES ('20/04/2003',40);
>
> GO
>
> insert into sejours (date_sejour) VALUES ('10/02/2003') ;
> insert into sejours (date_sejour) VALUES ('20/02/2003') ;
> insert into sejours (date_sejour) VALUES ('01/04/2003') ;
> insert into sejours (date_sejour) VALUES ('25/04/2003') ;
>
> GO
>
>
> -- REQUETE AVEC TOP
> SELECT S.date_sejour,(SELECT TOP 1 prix
> FROM tarifs T
> WHERE date_debut <= S.date_sejour
> ORDER BY prix DESC) AS Prix
> FROM sejours S
>
> GO
>
> -- REQUETE AVEC MAX
> SELECT S.date_sejour, (SELECT MAX(T.prix)
> FROM tarifs T
> WHERE (T.date_debut <= S.date_sejour)) AS Prix
> FROM sejours S
>
> GO
>
>
> -- FIN SCRIPT SQL ----------------------------
>
>
>
> "Laurent Moreau" a écrit dans le
message
> de news:c6t5un$6e3$
> > Avec Max(T.prix) ce n'est pas bon: il renvoie le prix le plus élevé,
alors
> > que toi tu recherche le dernier prix avant une date précise:
> >
> > ex:
> > 1 jan: 10?
> > 5 fev: 20 ?
> > 8 mars: 15?
> > 9 avril: 35?
> >
> >
> > Tu cherches a obtenir le prix le 1 avril (si j'ai bien compris ton
> > probleme au départ)
> >
> > avec max(prix) tu vas obtenir: 20? car tu cherches dans les prix
> antérieur
> > au 1 avril, ce n'est pas bon.
> >
> > La requete de Fred (avec le TOP 1) va bien te chercher le dernier prix
> > antérieur au 1 avril, soit 15?
> >
> >
> >
> > Laurent.
> >
> >
> >
> >
> >
> > "Olivier" wrote in message
> > news:
> > > Merci
> > >
> > > J'obtiens le même résultat avec ma requête, non ?
> > > SELECT D.date_sejour,
> > > (SELECT MAX(T.prix)
> > > FROM tarifs_chambre T
> > > WHERE (T.date_debut <= D.date_sejour)) AS Prix
> > > FROM sejours D
> > >
> > > Le TOP 1 avec ton ORDER BY prix DESC revient à faire un MAX ?
> > >
> > > Enfin, ne perds plus de temps avec çà.
> > > Ca marche, c'est le plus important, et je t'en remercie, ainsi que
> > Laurent.
> > >
> > > PS : des projets de livre ;-)
> > >
> > > Merci
> > > Olivier
> > >
> > >
> > > "Fred BROUARD" a écrit dans le message


de
> > > news:
> > > > La solution avec le TOP !
> > > >
> > > > SELECT D.date_sejour,(SELECT TOP 1 prix
> > > > FROM tarifs T
> > > > WHERE date_debut <= D.date_sejour
> > > > ORDER BY prix DESC) AS Prix
> > > > FROM sejours D
> > > >
> > > > A +
> > > >
> > > >
> > > > --
> > > > Frédéric BROUARD, MVP Microsoft SQL Server. Langage SQL / Delphi /
web
> > > > Livre SQL - col. Référence :
http://sqlpro.developpez.com/bookSQL.html
> > > > Le site du SQL, pour débutants et pros :
http://sqlpro.developpez.com
> > > > ****************** mailto:
******************
> > > >
> > >
> > >
> >
> >
>
>




Avatar
Olivier
Ben, finalement non !
Donc, soit mon probleme est très mal expliqué soit je comprends rien :-(

Résultat, je vais faire une fonction en VB qui boucle sur les differents
tarifs.
si datediff() etc..etc..
j'ai le prix.

Merci pour vos efforts malgré tout

Olivier



"Laurent Moreau" a écrit dans le message
de news:c6tcts$9jb$
Ben non, ton exemple marche car tes prix sont croissants.
Si tu saisies des prix décroissants tu verras que TOP marche et que MAX ne
marche pas:

> A partir du 01 Janvier le prix est de 40 euros
> A partir du 15 Février le prix est de 30 euros
> A partir du 20 Mars le prix est de 20 euros
> A partir du 20 Avril le prix est de 10 euros


Laurent.





"Olivier" wrote in message
news:%
> ???
> Je dois surement mettre mal exprimé.
> Copie le Script SQL plus-bàs et regarde ? Ou alors je suis vraiment
fatigué
> :-(
> C'est vrai que par ecrit c'est toujours dur d'expliquer un problème.
>
> Ma table TARIFS exprime des prix " à partir d'une date "
>
> Ex:
> A partir du 01 Janvier le prix est de 10 euros
> A partir du 15 Février le prix est de 20 euros
> A partir du 20 Mars le prix est de 30 euros
> A partir du 20 Avril le prix est de 40 euros
>
> Donc, quelque soit la requete que j'utilise (MAX ou TOP) pour les dates
> suivantes :
>
> 10 Février , j'obtient bien la valeur 10
> 20 Février , j'obtient bien la valeur 20
> 01 Avril, j'obtient bien la valeur 30
> 25 Avril, j'obtient bien la valeur 40
>
> Non ?
>
> -- SCRIPT SQL ---------------------------------
> USE master
> GO
>
> IF EXISTS (SELECT * FROM information_schema.schemata WHERE catalog_name


> > 'monhotel')
> ALTER DATABASE monhotel SET SINGLE_USER WITH ROLLBACK IMMEDIATE
> DROP DATABASE monhotel
> GO
>
> CREATE DATABASE monhotel
> GO
>
> USE monhotel
> GO
>
> create table tarifs
> (
> date_debut DATETIME,
> prix INT
> );
> GO
>
> create table sejours
> (
> date_sejour DATETIME
> );
> GO
>
>
> insert into tarifs (date_debut, prix) VALUES ('01/01/2003',10);
> insert into tarifs (date_debut, prix) VALUES ('15/02/2003',20);
> insert into tarifs (date_debut, prix) VALUES ('20/03/2003',30);
> insert into tarifs (date_debut, prix) VALUES ('20/04/2003',40);
>
> GO
>
> insert into sejours (date_sejour) VALUES ('10/02/2003') ;
> insert into sejours (date_sejour) VALUES ('20/02/2003') ;
> insert into sejours (date_sejour) VALUES ('01/04/2003') ;
> insert into sejours (date_sejour) VALUES ('25/04/2003') ;
>
> GO
>
>
> -- REQUETE AVEC TOP
> SELECT S.date_sejour,(SELECT TOP 1 prix
> FROM tarifs T
> WHERE date_debut <= S.date_sejour
> ORDER BY prix DESC) AS Prix
> FROM sejours S
>
> GO
>
> -- REQUETE AVEC MAX
> SELECT S.date_sejour, (SELECT MAX(T.prix)
> FROM tarifs T
> WHERE (T.date_debut <= S.date_sejour)) AS Prix
> FROM sejours S
>
> GO
>
>
> -- FIN SCRIPT SQL ----------------------------
>
>
>
> "Laurent Moreau" a écrit dans le
message
> de news:c6t5un$6e3$
> > Avec Max(T.prix) ce n'est pas bon: il renvoie le prix le plus élevé,
alors
> > que toi tu recherche le dernier prix avant une date précise:
> >
> > ex:
> > 1 jan: 10?
> > 5 fev: 20 ?
> > 8 mars: 15?
> > 9 avril: 35?
> >
> >
> > Tu cherches a obtenir le prix le 1 avril (si j'ai bien compris ton
> > probleme au départ)
> >
> > avec max(prix) tu vas obtenir: 20? car tu cherches dans les prix
> antérieur
> > au 1 avril, ce n'est pas bon.
> >
> > La requete de Fred (avec le TOP 1) va bien te chercher le dernier prix
> > antérieur au 1 avril, soit 15?
> >
> >
> >
> > Laurent.
> >
> >
> >
> >
> >
> > "Olivier" wrote in message
> > news:
> > > Merci
> > >
> > > J'obtiens le même résultat avec ma requête, non ?
> > > SELECT D.date_sejour,
> > > (SELECT MAX(T.prix)
> > > FROM tarifs_chambre T
> > > WHERE (T.date_debut <= D.date_sejour)) AS Prix
> > > FROM sejours D
> > >
> > > Le TOP 1 avec ton ORDER BY prix DESC revient à faire un MAX ?
> > >
> > > Enfin, ne perds plus de temps avec çà.
> > > Ca marche, c'est le plus important, et je t'en remercie, ainsi que
> > Laurent.
> > >
> > > PS : des projets de livre ;-)
> > >
> > > Merci
> > > Olivier
> > >
> > >
> > > "Fred BROUARD" a écrit dans le message


de
> > > news:
> > > > La solution avec le TOP !
> > > >
> > > > SELECT D.date_sejour,(SELECT TOP 1 prix
> > > > FROM tarifs T
> > > > WHERE date_debut <= D.date_sejour
> > > > ORDER BY prix DESC) AS Prix
> > > > FROM sejours D
> > > >
> > > > A +
> > > >
> > > >
> > > > --
> > > > Frédéric BROUARD, MVP Microsoft SQL Server. Langage SQL / Delphi /
web
> > > > Livre SQL - col. Référence :
http://sqlpro.developpez.com/bookSQL.html
> > > > Le site du SQL, pour débutants et pros :
http://sqlpro.developpez.com
> > > > ****************** mailto:
******************
> > > >
> > >
> > >
> >
> >
>
>




1 2 3