SQL Server: Select date qui ont minimum une heure d'ecart

SQL Server: Select date qui ont minimum une heure d'ecart - SQL/NoSQL - Programmation

Marsh Posté le 26-07-2005 à 12:15:24    

Bonjour,  
Je suis sous sql server. Et j'aimerai savoir comment selectionner les dates de ma table (stockées au format DateTime) qui ont au minimum une heure d'ecart.  
 
Voila je sais vraiment pas comment m'y prendre pour realiser ca.  
 
Voici un exemple de ma table:  
 
238 20/07/2005 16:26:17 77 235  
239 20/07/2005 16:26:18 78 235  
240 20/07/2005 16:26:19 79 235  
241 20/07/2005 17:56:28 76 234  
242 20/07/2005 17:57:42 76 234  
243 21/07/2005 09:29:23 80 234  
 
Merci de votre aide!

Reply

Marsh Posté le 26-07-2005 à 12:15:24   

Reply

Marsh Posté le 26-07-2005 à 12:50:23    

- Une clause WHERE EXISTS (...)
- Avec, dans la sous-requêtes, utilisation de DATEDIFF
 
Eventuellement, une auto-jointure : FROM MyTable T1, MyTable T2, très élégant.


Message édité par sircam le 26-07-2005 à 12:50:40

---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 26-07-2005 à 14:35:07    

je préfère une auto-jointure avec un datediff sur l'heure, c'est plus rapide

Reply

Marsh Posté le 26-07-2005 à 14:40:13    

Arjuna a écrit :

je préfère une auto-jointure avec un datediff sur l'heure, c'est plus rapide


 
tu pourrais detailler un peut stp, car j'ai du mal a piger meme apres la lecture du msdn ...


Message édité par herks le 26-07-2005 à 14:40:51
Reply

Marsh Posté le 26-07-2005 à 14:48:07    

ben...
 
select t1.date
from latable t2, latable t1
where datediff(h, t2.date, t1.date) >= 1
 
enfin, c'est pas la requête entière, c'est juste une piste de départ.

Reply

Marsh Posté le 26-07-2005 à 15:20:03    

Peut-être moins aisé à comprendre pour un débutant. (?)


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 26-07-2005 à 15:27:09    

bah vi mais là j'ai plein de taff (à force de discuter à propos de SQL Server et Oracle vs MySQL j'ai rien foutu deux après-midi entières, alors là faut que je m'y mette :D)

Reply

Marsh Posté le 26-07-2005 à 15:32:11    

"j'aimerai savoir comment selectionner les dates de ma table (stockées au format DateTime) qui ont au minimum une heure d'ecart"
 
Tu veux dire que tu veux les dates qui sont au moins à une heure de toutes les autres, ou au moins à une heure d'une autre date quelconque ?
 
Parce que si c'est le 2ème cas, la requête d'Arjuna est ok, sinon faut utiliser un NOT EXISTS ;)

Reply

Marsh Posté le 26-07-2005 à 16:12:32    

Bien vu : je l'ai aussi compris comme #2.


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 26-07-2005 à 17:13:16    

merci a tous j'ai reussi a faire ce que je voulais :)
 
Voila a quoi ressemble ma requettesi ca vous interesse :)
 

Code :
  1. SELECT COUNT(StatsId) AS Expr1
  2. FROM (SELECT 1.StatsId
  3. FROM webtracking_stat_ref t2 INNER JOIN
  4. webtracking_stat_ref t1 ON t2.StatsId = t1.StatsId INNER JOIN
  5. webtracking_stats ws ON t1.StatsId = ws.id
  6. WHERE (DATEDIFF(hh, t2.ClickTime, t1.ClickTime) >= 1)
  7. AND (ws.ReportId = @ReportId)
  8. GROUP BY t1.StatsId) TMP


Message édité par herks le 26-07-2005 à 17:15:07
Reply

Sujets relatifs:

Leave a Replay

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