{MySQL}

Fermé
SKROW - 3 mars 2010 à 16:10
Mouradif Messages postés 26 Date d'inscription lundi 18 février 2008 Statut Membre Dernière intervention 5 novembre 2019 - 4 mars 2010 à 12:39
Bonjour,

Voila dans le cadre de mon master qui concerne un produit de prédiction d'information financière, je suis confronté a un petit problème que je n'arrive pas a résoudre.

Ceci concerne une requête SELECT sur un champ de type DATETIME

Voici ma table

CREATE TABLE IF NOT EXISTS `rates` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `Stock` text NOT NULL,
  `Date` datetime NOT NULL,
  `Rate` float NOT NULL,
  PRIMARY KEY (`id`)
)


Le but de ma requete est qu'elle me retourne une table contenant tous les "Rate" et ceci pour (uniquement) chaque heure.

exemple :

01-01-2001 00h00
01-01-2001 01h00
01-01-2001 02h00
01-01-2001 03h00
01-01-2001 04h00
01-02-2001 00h00
01-02-2001 01h00
01-02-2001 02h00
01-02-2001 03h00
01-02-2001 04h00

Mon problème est qu'actuellement, elle me retourne chaque heure, mais si l'heure "12h00" est déjà sorti a une date, elle ne me l'affichera plus pour une autre date.

voici ma requête

SELECT HOUR(Date) AS Hours, id,DATE(Date) as myDate,TIME(DATE) as myTime, Rate 
FROM rates 
WHERE Stock = "gold"
GROUP BY HOUR(Date) ORDER BY Date


Voila j'espère avoir été assez claire et surtout avoir posté dans la bonne seciton.

Merci d'avance pour votre aide

2 réponses

incaout Messages postés 347 Date d'inscription lundi 8 septembre 2008 Statut Membre Dernière intervention 15 novembre 2012 74
4 mars 2010 à 12:12
Salut,

D'après mes souvenirs, je crois que c'est la clause Group qui fait que tu perds des enregistrements. Je pense qu'il faudrait ajouter aussi les champs id et date dans ta clause Group ou enlever la clause group.

Cdlt

IC
0
Mouradif Messages postés 26 Date d'inscription lundi 18 février 2008 Statut Membre Dernière intervention 5 novembre 2019 36
4 mars 2010 à 12:39
Salut,

Déjà ton champs Stock je t'aurais plutôt conseillé de le mettre en VARCHAR(50) ou (100) plutôt que text. Text c'est plutôt pour les longs textes genre article de wiki. Un nom de stock ça dépasse pas les 20 caractères, surtout si tu utilise leur codes.

Pour ta requête, essaye ça (sans aucune certitude)

SELECT DISTINCT DATE(date) AS MyDate, HOUR(date) AS Heure, rate
FROM rates
WHERE stock = "gold"
GROUP BY MyDate, Heure
0