calculer une valeur entre deux dates

calculer une valeur entre deux dates - SQL/NoSQL - Programmation

Marsh Posté le 26-08-2006 à 20:52:34    

Bonjour tout le monde, quelqu'un peut me dire comment est ce qu'on peut calculer une valeur entre deux dates quelconques,par exemple: je veux calculer le nombre de clients entre deux dates, ces deux dates sont modifiables,alors pour chaque fois que je veux calculer le nbr,je choisis deux dates diff, je veux dire que la requete ne contient pas 2 dates fixes,mais chaque fois que j'exécute l'appli,je saisis 2 dates,et voilà,j'obtient le nombre des clients,
Merci d'avance
j'espère entendre vos réponses

Reply

Marsh Posté le 26-08-2006 à 20:52:34   

Reply

Marsh Posté le 26-08-2006 à 21:36:04    

Il faut enregistrer le nombre de clients à intervalles réguliers, ensuite, tu fais la somme de ces enregistrements entre les deux dates.


---------------
Les aéroports où il fait bon attendre, voila un topic qu'il est bien
Reply

Marsh Posté le 26-08-2006 à 22:09:02    

pour chaque client, il faut avoir la date d'arrivée et la date départ.  
ensuite la requête est toute conne
 
SELECT count(*)
FROM table_client t1, table_periodes t2
WHERE t1.idClient = t2.idClient
AND (t2.DateDebut BETWEEN taDate1 AND taDate2
OR t2.DateFin BETWEEN taDate1 AND taDate2  
OR (t2.DateDebut BETWEEN taDate1 AND taDate2  
AND t2.DateFin BETWEEN taDate1 AND taDate2))
 
un truc ainsi, faudra peut etre rajouter des OR pour les périodes à voir quoi selon ce que tu as besoin
taDate1 représente la date de début que tu encodes, et taDate2 représente la date 2 que tu encodes.
La requête te renverra le nombre de client qui était la entre la date1 et la date2

Reply

Marsh Posté le 26-08-2006 à 22:24:17    

je connais ce genre de requête bien sûr,mais c'est pas ça ce que je voulais savoir,plutôt,par exemple dans l'exemple que t'as cité moi23372,on trouve tadate1 et tadate2,ces deux dates sont à saisir dans la requête,mais ce que je veux est à travers l'appli vb6,j'introduis des dates qui ne seront pas toujours fixes,les changer chaque fois je veux calculer le nombre des clients,c'est comme si on fait dans la requête des expressions de date qui seront remplacées par les vrais valeurs que je saisis dans l'appli!!!!!!!!!!!!!!

Reply

Marsh Posté le 27-08-2006 à 11:04:39    

dans ton code VB, il suffit de construire la requête dynamiquement pour arriver à ce résultat.  
 
tu concatène les éléments de la requête
en C# ça donne ça :
 
string sql = "SELECT count(*) "
+"FROM table_client t1, table_periodes t2 "
+"WHERE t1.idClient = t2.idClient "
+"AND (t2.DateDebut BETWEEN "+MONCHAMPDATE.VALUE+" AND "+MONCHAMPDATE2.VALUE+""
+"OR t2.DateFin BETWEEN "+MONCHAMPDATE.VALUE+"AND "+MONCHAMPDATE.VALUE2+""
+"OR (t2.DateDebut BETWEEN "+MONCHAMPDATE.VALUE+"AND "+MONCHAMPDATE2.VALUE+""
+"AND t2.DateFin BETWEEN "+MONCHAMPDATE.VALUE+"AND "+MONCHAMPDATE2.VALUE+" )) ";
 
attention que la synthaxe sur les date est différente d'un SGBD à un autre.  
Je fais allusion ici à:
ORACLE: TO_DATE(...), TO_CHAR(...)
SQL SERVER: CAST(...), CONVERT(...)
ACCESS: FORMAT(...)
etc.
 
EDIT: ça c'est la méthode à la dur. Il est possible de faire dans presque tous les languages des requêtes paramétrées avec des "?" en JDBC JAVA par exemple. ça doit être possible en VB également ;)


Message édité par moi23372 le 27-08-2006 à 11:06:20
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed