|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Membre régulier
![]() Inscription : janvier 2006 Messages : 412 ![]() |
salut,
j'ai besoin de recuperer des valeur ex(val1,val2,val3) pour une duree de 3 jours. mon resultat finale doir etre comme ça: Code :
j'arrive à recuper tout ça mais dans une meme table. je m'explique. pour chaque id j'ai trois ligne. chaque ligne correspond à une journée Code :
est ce que l'utilisation de pivot puet m'aider?? des idées? |
||||
|
|
00
|
|
|
#2 | ||
|
Membre Expert
![]() Sylvain DevidalChef de projets Générix Inscription : février 2010 Messages : 1 062 ![]() |
Je ne connais pas les capacité de pivot de SQL Server.
En contrepartie, je sais que de nombreux autres SGBD ne supportent aucune fonction de ce type. Donc dans l'optique de conserver ton code un minimum portable et compréhensible par tous, je te conseille vivement d'utiliser des auto-jointures pour récupérer les données pour J, J-1 et J-2. PS : Je ne vois pas de notion de "jour" dans ton exemple. Est-ce que tu as cette information quelque part ? (genre, comme garantis-tu que la seconde ligne de ton résultat actuel c'est bien les valeurs de ID=1 à j-1 et non à j-2, n'ayant pas de données à j-1 ? comment garantis-tu l'ordre ?) Avec une structure de ce type, je verrais un truc du genre : table OBJ ID (pk) (le reste on s'en fout) table VAL ID (fk vers OBJ.ID) JOUR (int) V1 (val1) V1 (val2) V1 (val3) Code :
|
||
|
|
00
|
|
|
#3 | ||
|
Membre régulier
![]() Inscription : janvier 2006 Messages : 412 ![]() |
ok merci pour ta réponse.
j'ai un autre soucis. je veux bien à partir de cett table qui represente des données par (10 min): Code :
autrement dis recuperer dans un intervalle de 30min. je trouve pas comment regrouper mes données. des idées? Merci d'avance. |
||
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() Sylvain DevidalChef de projets Générix Inscription : février 2010 Messages : 1 062 ![]() |
Le plus compliqué, c'est de formatter ton heure de la façon suivante :
0:00 => 0:00 0:10 => 0:00 0:20 => 0:00 0:30 => 0:30 0:40 => 0:30 0:50 => 0:30 Une fois que t'as réussi à faire ça, t'as plus qu'à faire un sum() sur tes val, et de faire un group by ta date mise en forme avec la règle ci-dessus. |
|
|
00
|
|
|
#5 |
|
Membre régulier
![]() Inscription : janvier 2006 Messages : 412 ![]() |
merci pour ta reponse.
mais comment je peux le faire ??? c'est ça la question:s |
|
|
00
|
|
|
#6 |
|
Membre Expert
![]() Sylvain DevidalChef de projets Générix Inscription : février 2010 Messages : 1 062 ![]() |
Avec une conbinaison entre les fonctions de formattage de dates, des substr et datepart, et un bon gros case des familles.
Après, je peux pas entrer dans le détail, j'ai pas de SQL Server sous la main pour faire un test. En tout cas, ça va pas être joli au final, SQL Server est assez pauvre en ce qui concerne le formattage des dates, donc beaucoup de découpage à la main... |
|
|
00
|
|
|
#7 | ||
|
Membre Expert
![]() |
Code :
__________________
Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir. |
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com