A voir également:
- Comment faire pour comparer deux champs dates
- Deux comptes whatsapp - Guide
- Deux ecran pc - Guide
- Faire deux colonnes sur word - Guide
- Itinéraire google map entre deux adresses - Guide
- Comparer prix amazon - Guide
23 réponses
grofwa
Messages postés
440
Date d'inscription
jeudi 24 juillet 2003
Statut
Membre
Dernière intervention
21 juillet 2006
479
6 août 2004 à 11:56
6 août 2004 à 11:56
select id_tarif from tarif, date_debut, date_fin where date_debut.id_date_debut = date_debut.id_date_debut and date_fin.id_date_fin = date_fin.id_date_fin and date_passée_en_paramètre between date_debut and date_fin
Mais cela dit, pour n'avoir qu'une date dans les deux tables date_debut et date_fin, pourquoi ne pas mettre directement les dates dans la table tarif ? Au niveau mémoire, c'est à peine plus, et pour les perfs et la différence de boutot, ça risque de faire la différence...
Michael.
Ne vous souciez pas de n'être pas remarqué ; cherchez
plutôt à faire quelque chose de remarquable [Confucius]
grofwa
Messages postés
440
Date d'inscription
jeudi 24 juillet 2003
Statut
Membre
Dernière intervention
21 juillet 2006
479
6 août 2004 à 09:57
6 août 2004 à 09:57
Salut
C'est en MySQL ?
where date between d1 and d2
Michael.
Ne vous souciez pas de n'être pas remarqué ; cherchez
plutôt à faire quelque chose de remarquable [Confucius]
C'est en MySQL ?
where date between d1 and d2
Michael.
Ne vous souciez pas de n'être pas remarqué ; cherchez
plutôt à faire quelque chose de remarquable [Confucius]
Attention ce sont deux champs aleatoires qui sont données par l'utilisateur pour l'instant je fais des tests avec access mais je suis sous sql server
grofwa
Messages postés
440
Date d'inscription
jeudi 24 juillet 2003
Statut
Membre
Dernière intervention
21 juillet 2006
479
6 août 2004 à 10:37
6 août 2004 à 10:37
Comment ça, des champs aléatoires ?
Tu veux dire que l'utilisateur peut demander une fouchette de date, de prix et/ou de n'importe quoi ?
Ne vous souciez pas de n'être pas remarqué ; cherchez
plutôt à faire quelque chose de remarquable [Confucius]
Tu veux dire que l'utilisateur peut demander une fouchette de date, de prix et/ou de n'importe quoi ?
Ne vous souciez pas de n'être pas remarqué ; cherchez
plutôt à faire quelque chose de remarquable [Confucius]
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Une fourchette de date mais on a date 1 qui est une table date_debut et une date 2 qui une autre table date_fin.
grofwa
Messages postés
440
Date d'inscription
jeudi 24 juillet 2003
Statut
Membre
Dernière intervention
21 juillet 2006
479
6 août 2004 à 11:26
6 août 2004 à 11:26
Tu veux pas donner la structure de tes deux tables, parce que j'ai du mal à cerner ton problème, là !
Ne vous souciez pas de n'être pas remarqué ; cherchez
plutôt à faire quelque chose de remarquable [Confucius]
Ne vous souciez pas de n'être pas remarqué ; cherchez
plutôt à faire quelque chose de remarquable [Confucius]
Table date_debut avec les champs id_date_debut ; date_debut
Table date_fin avec les champs id_date_fin; date_fin
Table tarif avec les champs id_tarif (en auto); id_date_debut; id_date_fin; tarif; id_hotel.
Donc la table tarif comprend une date de debut une date de fin avec un tarif et un hotel. Une requete doit permettre de ressortir le tarif a partir du moment ou ce dernier et entre la date_debut et date_fin
Table date_fin avec les champs id_date_fin; date_fin
Table tarif avec les champs id_tarif (en auto); id_date_debut; id_date_fin; tarif; id_hotel.
Donc la table tarif comprend une date de debut une date de fin avec un tarif et un hotel. Une requete doit permettre de ressortir le tarif a partir du moment ou ce dernier et entre la date_debut et date_fin
grofwa
Messages postés
440
Date d'inscription
jeudi 24 juillet 2003
Statut
Membre
Dernière intervention
21 juillet 2006
479
6 août 2004 à 12:12
6 août 2004 à 12:12
tu donnes quoi en paramètre à ta requête ?
Ne vous souciez pas de n'être pas remarqué ; cherchez
plutôt à faire quelque chose de remarquable [Confucius]
Ne vous souciez pas de n'être pas remarqué ; cherchez
plutôt à faire quelque chose de remarquable [Confucius]
en faite tu aurais un deroulant pour les date_debut et un autre pour date_fin qui devront renseigner la requete sql
grofwa
Messages postés
440
Date d'inscription
jeudi 24 juillet 2003
Statut
Membre
Dernière intervention
21 juillet 2006
479
6 août 2004 à 14:06
6 août 2004 à 14:06
select id_tarif from tarif, date_debut, date_fin where date_debut.id_date_debut = date_debut.id_date_debut and date_fin.id_date_fin = date_fin.id_date_fin and date_debut.date_debut >= param1 and date_fin.date_fin <= param2
où param1 et param2 viennent de tes listes déroulantes.
C'est clair ?
Michael.
Ne vous souciez pas de n'être pas remarqué ; cherchez
plutôt à faire quelque chose de remarquable [Confucius]
le probleme est:
si tu fais la requete sql ci dessus et que par exp tu as choisi date debut 01/08/2004 au 31/08/04 un tarif de 64 €. et si on lance dit moi le prix pour du 03/08 au 24/08 alors la requete ne trouve rien la requete ci dessus marche uniquement dans le cas ou tu donnes les dates de debut et de fin masi si tu fais entre alors la requete ne marche pas
si tu fais la requete sql ci dessus et que par exp tu as choisi date debut 01/08/2004 au 31/08/04 un tarif de 64 €. et si on lance dit moi le prix pour du 03/08 au 24/08 alors la requete ne trouve rien la requete ci dessus marche uniquement dans le cas ou tu donnes les dates de debut et de fin masi si tu fais entre alors la requete ne marche pas
grofwa
Messages postés
440
Date d'inscription
jeudi 24 juillet 2003
Statut
Membre
Dernière intervention
21 juillet 2006
479
6 août 2004 à 14:45
6 août 2004 à 14:45
OK, ca se précise.
Dis-moi juste, par rapport à cet exemple :
Si tu demandes
du 5/8 au 15/8 => 64 eur
du 25/8 au 4/9 => 64 eur
du 5/9 au 25/9 => 45 eur
C'est juste ?
Ne vous souciez pas de n'être pas remarqué ; cherchez
plutôt à faire quelque chose de remarquable [Confucius]
Dis-moi juste, par rapport à cet exemple :
date_deb date_fin prix -------- -------- ------ 01/08/04 31/08/04 64eur 01/09/04 30/09/04 45eur
Si tu demandes
du 5/8 au 15/8 => 64 eur
du 25/8 au 4/9 => 64 eur
du 5/9 au 25/9 => 45 eur
C'est juste ?
Ne vous souciez pas de n'être pas remarqué ; cherchez
plutôt à faire quelque chose de remarquable [Confucius]
grofwa
Messages postés
440
Date d'inscription
jeudi 24 juillet 2003
Statut
Membre
Dernière intervention
21 juillet 2006
479
6 août 2004 à 15:51
6 août 2004 à 15:51
OK, alors c'est comme ceci :
puisque la date de fin sélectionnée n'a pas d'importance !
Ne vous souciez pas de n'être pas remarqué ; cherchez
plutôt à faire quelque chose de remarquable [Confucius]
select id_tarif from tarif, date_debut, date_fin where tarif.id_date_debut = date_debut.id_date_debut and tarif.id_date_fin = date_fin.id_date_fin and date_debut.date_debut >= param1 and date_fin.date_fin <= param1
puisque la date de fin sélectionnée n'a pas d'importance !
Ne vous souciez pas de n'être pas remarqué ; cherchez
plutôt à faire quelque chose de remarquable [Confucius]
en fait ca ne fonctionne que si on prend les dates exacts de debut et de fin des periodes entre ca ne fonctionnent pas
grofwa
Messages postés
440
Date d'inscription
jeudi 24 juillet 2003
Statut
Membre
Dernière intervention
21 juillet 2006
479
6 août 2004 à 22:15
6 août 2004 à 22:15
Oh hé !
Je m'a trompé !
:-)
Ne vous souciez pas de n'être pas remarqué ; cherchez
plutôt à faire quelque chose de remarquable [Confucius]
Je m'a trompé !
select id_tarif from tarif, date_debut, date_fin where tarif.id_date_debut = date_debut.id_date_debut and tarif.id_date_fin = date_fin.id_date_fin and date_debut.date_debut <= param1 and date_fin.date_fin >= param1
:-)
Ne vous souciez pas de n'être pas remarqué ; cherchez
plutôt à faire quelque chose de remarquable [Confucius]
merci ca marche
et si on complique un peu et on dit
du 01/08 au 31/08 c'est 64 €
et 01/09 au 31/10 c'est 70 € et que la date debut est 29/08 et fin 02/09 en gros la requete doit me permettre de resortir les deux tarifs
merci bcp pour ton aide
et si on complique un peu et on dit
du 01/08 au 31/08 c'est 64 €
et 01/09 au 31/10 c'est 70 € et que la date debut est 29/08 et fin 02/09 en gros la requete doit me permettre de resortir les deux tarifs
merci bcp pour ton aide
grofwa
Messages postés
440
Date d'inscription
jeudi 24 juillet 2003
Statut
Membre
Dernière intervention
21 juillet 2006
479
7 août 2004 à 09:20
7 août 2004 à 09:20
Oui, mais là, tu changes les règles du jeu :-) (voir Post No 13 et 14)
Je pense que pour faire ça, tu devras passer par de la programmation pour déterminer les fins de mois et exécuter autant de requêtes qu'il y aura de périodes différentes.
michael.
Ne vous souciez pas de n'être pas remarqué ; cherchez
plutôt à faire quelque chose de remarquable [Confucius]
Je pense que pour faire ça, tu devras passer par de la programmation pour déterminer les fins de mois et exécuter autant de requêtes qu'il y aura de périodes différentes.
michael.
Ne vous souciez pas de n'être pas remarqué ; cherchez
plutôt à faire quelque chose de remarquable [Confucius]
Ce que j'ai compris c'est que tu veux calculer le montant à payer entre un période limiter , mais le tarif devient 64 entre le 01/08 et le 30/09 . je dois donc calculer le nbr des jours n1 < 01/08 et n2 entre le 01/08 et le 30/09 et n3 > 30/09
Total = (n1* TarifNormal) + (n2 * 64) + (n3 * TraifNormal)
pour calculer n1 , n2 , n3
Dim D1 as Date
Dim D2 As Date
n1=0
n2=0
n3=0
if (D1 < #08/01/2004#) Then n1=DateDiff("d",D1,"01/08/2004")
if (D1 >= #08/01/2004#) And (D2 <= #09/30/2004#) Then
n2=DateDiff("d",D1,D2)
end if
if (D2 > #09/30/2004#) Then n3=DateDiff("d","30/09/2004",D2)
Total = (n1* TarifNormal) + (n2 * 64) + (n3 * TraifNormal)
pour calculer n1 , n2 , n3
Dim D1 as Date
Dim D2 As Date
n1=0
n2=0
n3=0
if (D1 < #08/01/2004#) Then n1=DateDiff("d",D1,"01/08/2004")
if (D1 >= #08/01/2004#) And (D2 <= #09/30/2004#) Then
n2=DateDiff("d",D1,D2)
end if
if (D2 > #09/30/2004#) Then n3=DateDiff("d","30/09/2004",D2)