Accueil > Forum > > > > requête mysql compliqué
requête mysql compliqué
mercredi 2 juillet 2008 à 17:22:21 |
requête mysql compliqué

gosu14
|
Bonjour, Je suis un novice en php/mysql et je suis devant un léger problème. J'ai une base SMIC qui ressemble a cela : id taux DateDebut DateFin 1 8.27 2006-07-01 2007-06-30 2 8.44 2007-07-01 2008-04-30 3 8.63 2008-05-01 2009-07-31 Voila j'aimerais récupérer le taux pour une année, je m'explique : la fonction qui utilisera cette requête aura l'année en paramètre donc par exemple si l'année est 2008, il y un changement de taux, donc j'aimerai récupérer les 2 taux différents. En gros il faut faire une requête qui test si il y a un changement dans l'année, puis qui renvoi ensuite le ou les taux . A quoi ressemble cette requête ? Merci pour vos réponses.
|
|
mercredi 2 juillet 2008 à 23:27:31 |
Re : requête mysql compliqué

PlayerMania
|
Bin avec qqch du style qui te récupère tous les taux selon ton année SELECT taux FROM matable WHERE annee = 2007; $mes_taux = mysql_fetch_array();
Ensuite tu boucle sur ton tableau $mes_taux pour tous les rechopper, éventuellement en sortir une moyenne ou ce que tu veux $i=0; $size=count($mes_taux); while($i < $size) { echo $mes_taux[$i]; $i++; }
Faire cela juste avec une seul requete est surement bien sure possible, mais je doute que les performance soit terrible....
|
|
jeudi 3 juillet 2008 à 19:01:05 |
Re : requête mysql compliqué

neigedhiver
|
Salut, @Playermania : gosu a pris soin de préciser à quoi ressemble sa table, la requête que tu proposes n'est donc pas franchement adaptée, puisque tu utilises un champ (annee) qu'il n'a pas... SELECT taux FROM table_smic WHERE DateDebut LIKE '2008%' OR DateFin LIKE '2008%'; Après, un traitement normal du résultat avec mysql_fetch_*****() Neige
N'hésitez pas à lire la doc de PHP avant de poser des questions triviales...
|
|
jeudi 3 juillet 2008 à 22:11:40 |
Re : requête mysql compliqué

JoJo738
|
Hello, Tu peux aussi utiliser les fonctions DATE Par exemple : SELECT id, taux, DateDebut, DateFin FROM ta_table WHERE YEAR(DateDebut) = 2008 OR YEAR(DateFin) = 2008 Tu récuperrera tous les enregistrements de l'année 2008 Si ma reponse te convient, merci de l'accepter ! 
|
|
vendredi 4 juillet 2008 à 09:27:57 |
Re : requête mysql compliqué

PlayerMania
|
@neigedhiver, j'ai prend soin expret d'essayer de ne pas donner une réponse toute cru, c'est la moindre des choses que l'intéréssé y mette un peu de sa réflexion.
JoJo738 nous sort la plus belle requete aussi, en espérant qu'il n'y ai pas plus de 2-3 taux par an.
|
|
vendredi 4 juillet 2008 à 21:49:57 |
Re : requête mysql compliqué

JoJo738
|
(Arf, erreur avec la TextBox :s Retour en textarea ^^)
Par contre, je ne sais pas, mais la meilleur solution serait peut-être de trouver les années correspondants aux intervalles ... Car si on saute un an (imaginons), il n'y a aucun résultats pour 2008 ...
Je verrais peut être un TO_DATE() ?? ou une autre fonction SQL ... je vais aller voir sur la doc :s
|
|
samedi 5 juillet 2008 à 00:11:28 |
Re : requête mysql compliqué

JoJo738
|
Ahhh !
En cherchant un peu ... j'ai réussi à faire ça :
SELECT
id,
taux,
DateDebut,
DateFin
FROM
ta_table
WHERE
TO_DAYS( STR_TO_DATE( '2008-01-01', '%Y-%d-%m' ) ) - TO_DAYS( DateDebut )
BETWEEN
- DAYOFYEAR(STR_TO_DATE( '2008-31-12', '%Y-%d-%m' ) )
AND
DATEDIFF( DateFin, DateDebut )
Etudions la requête ...
- STR_TO_DATE( '2008-01-01', '%Y-%m-%d' )
-> Converti la date 2008-01-01 (Y-m-d) en date DATETIME (AAAA-MM-JJ). Ce qui correspond au 1er jour de l'année 2008 (ou année recherchée)
- TO_DAYS
-> convertie la date en jours (nombre de jours depuis l'année 0)
- "- DAYOFYEAR(STR_TO_DATE( '2008-31-12', '%Y-%d-%m' ) )" correspond au nombre de jours dans l'année recherchée
- "DATEDIFF( DateFin, DateDebut )" c'est la différence (en jours) entre les deux dates (toujours positif)
- "TO_DAYS( STR_TO_DATE( '2008-01-01', '%Y-%d-%m' ) ) - TO_DAYS( DateDebut )" est la différence entre les dates du 1er de l'année recherchée et la DateDebut
Bref, on cherche toutes la valeurs ou cette dernière différence soit comprise entre moins le nombre de jour dans l'année (365 OU 366) et la différence des deux dates.
ce qui nous permet de récupérer les valeurs ou l'année recherchée est comprise entre les deux dates (possibilité de faire des saut d'années (2007 -> 2009 -> 2020 [etc ...])
Et sinon, tu peux faire ça (plus simple pour la gestion je trouve) :
SET @annee = '2008'; SELECT
id,
taux,
DateDebut,
DateFin,
@annee as annee
FROM
test_date
WHERE
TO_DAYS( STR_TO_DATE( CONCAT(@annee, '-01-01'), '%Y-%d-%m' ) ) - TO_DAYS( DateDebut )
BETWEEN
- DAYOFYEAR(STR_TO_DATE( CONCAT(@annee, '-31-12'), '%Y-%d-%m' ) )
AND
DATEDIFF( DateFin, DateDebut )
( tout dans le même mysql_query() ;) )
Note (post précédent) : TO_DATE() pour Oracle, et STR_TO_DATE() est son homologue en MySQL
|
|
samedi 5 juillet 2008 à 01:04:12 |
Re : requête mysql compliqué

gosu14
|
Merci, pour cet échange c'est très constructif je pense que la réponse final ressemble le plus à ce que je veux faire, je vais tester tout cela ! Merci de votre aide ;) !
|
|
Cette discussion est classée dans : mysql, requête, taux, année, compliqué
Répondre à ce message
Sujets en rapport avec ce message
Mysql besoin d'aide pour une requête [ par redpooka ]
J'ai besoin de faire une requête en mysql qui me permettrait de compter certaines colonnes avec des conditions.Du style (code incorrect, mais compréhe
Menu déroulant à partir d'une requête mysql [ par tweeder ]
Bonjour,J'ai essayé de trouver sur le site un exemple pour ma question mais j'ai pas trouvé. J'aimerais généré un menu déroulant html à partir des élé
-Requête a l'intérieur d'une requête !!??! [ par kodiask ]
ALors mon problème est que jai un système de news mai celui-ci est disposer de cette sorte :Date - Titre (nb de comentaires)lorsque l'on clik sur le t
exécution automatique requête mysql [ par sann ]
Bonjour, Je voudrais savoir s'il y a un moyen d'exécuter automatiquement une requête Mysql à une heure précise avec Php/Mysql. Merci de votre aide.
Requête Mysql IN [ par tahiti_bob ]
Bonjour,Lorsque j'utilise la requête IN:DELETE FROM messages WHERE idmess IN ("1234","4567","ABCDE")Seul les deux premiers sont supprimés. Est ce qu'i
Requête SQL [ par lagombe ]
Bonjour à tous,voilà, j'ai une requête SQL qui me renvoie 5 lignes quand je l'éxécute avec phpmyadmin puis lorsque je l'utilise dans du code php (avec
Additionner le résultat d'une requête MySQL [ par djpunk ]
Je fais une requête sur ma base SQL du style :$d = mysql_query("SELECT * FROM articles WHERE type='$type' AND idtype='$id'");et j'aurais voulu savoir
problème de requête [ par brice57 ]
Bonjour, j'ai un problème avec la requête suivante que je ne parviens pas à exécuter sur une base Mysql:$query = "DELETE FROM Defi WHERE Passteam=".$p
un lien qui indique à MySQL la requête à afficher [ par pyranhaz ]
Bonjour,Cela semblait simple au départ, mais quand on est un néophyte, on sy perd rapidement :-sJ'ai un formulaire de recherche qui utilise MySQLquan
Page multiples dans résultats MySQL [ par pyranhaz ]
Bonjour,Existe-il une astuce simple pour que lorsque je fais une requête MySQL sur mon site on m'affiche les pages contenant au maximum 25 résultats p
Livres en rapport
|
Derniers Blogs
SESSION SILVERLIGHT 5 3D : SLIDES ET DEMOSSESSION SILVERLIGHT 5 3D : SLIDES ET DEMOS par Groc
Durant les techdays, j'ai eu le plaisir d'animer une session sur Silverlight 5 et la 3D avec Simon Ferquel. Comme promis, voici nos slides et mes démos (celles avec le viper BSG) ici et là. Pour mémoire, les démos utilisent toutes le viper BSG...
Cliquez pour lire la suite de l'article par Groc [TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES[TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES par gpommier
Suite à la session que j'ai présenté sur WebMatrix 2, vous pouvez trouver les slides ici, ainsi que les démos en packages nuget : démos1 et démos2 J'en profite pour remercier chaleureusement tous ceux qui sont venus très nombreux à cette sess...
Cliquez pour lire la suite de l'article par gpommier [SHAREPOINT] LES SESSIONS TECHDAYS 2012.[SHAREPOINT] LES SESSIONS TECHDAYS 2012. par Patrick Guimonet
Voici donc pour ceux qui n'ont pas pu venir, ou ceux qui n'ont pas pu toutes les suivre la liste des sessions SharePoint aux TechDays 2012, que je mettrais à jour dès que les liens des vidéo seront disponibles. Ou ici : http...
Cliquez pour lire la suite de l'article par Patrick Guimonet TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko
Forum
RE : SONDAGE..RE : SONDAGE.. par phpAnonyme
Cliquez pour lire la suite par phpAnonyme RE : SONDAGE..RE : SONDAGE.. par TychoBrahe
Cliquez pour lire la suite par TychoBrahe
Logiciels
Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning
|