|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre habitué
![]() |
Bonjour,
je voudrais savoir s'il est possible de faire une boucle FOR dans une procedure stockée sous SQLServer 2008, si oui je vous pris de me donner un exemple, Merci. |
|
|
00
|
|
|
#2 |
![]() ![]() ![]() Frédéric BROUARDExpert SGBDR & SQL Inscription : mai 2002 Messages : 10 958 ![]() |
Pas de FOR, mais du WHILE (qui peut simuler du FOR) !
A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/ Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp. Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * * |
|
00
|
|
|
#3 |
|
Membre habitué
![]() |
Merci,
En fait je voudrais faire un traitement un peu comliqué, j'ai pu le faire en VB.Net, et j'aimerais le refaire dans une procedure stockée. voila un exemple: Ticker MarketCap Date A 120000 2011-09-22 A 230000 2011-09-24 A 677000 2011-09-25 dans une fenetre j'ai une liste des tickers (dans une chekedlistbox), l'utilisateur a le droit de cocher le nombre de ticker qu'il souhaite. le principe c'est de calculer la performance de chaque ticker. Pour le premier enregistrement doit tjrs affecter 1 dans les autres lignes il faut calculer la division de la ligne /la ligne -1. Le resultat sera: Date Perf 2011-09-22 1 2011-09-24 230000/120000 2011-09-25 677000/230000. Sans Boucle comment faire, Merci |
|
|
01
|
|
|
#4 | ||||
![]() ![]() ![]() Frédéric BROUARDExpert SGBDR & SQL Inscription : mai 2002 Messages : 10 958 ![]() |
En utilisant une fonction de fenêtrage dans une simple requête SQL, par exemple.
Démo : Jeu d'essais : Code :
Code :
2) pour apprendre SQL, rien ne vaut mon site ou mon livre. En particulier : a) sur les CTE (WITH) : http://sqlpro.developpez.com/cours/s...te-recursives/ b) sur les fonctions de fenêtrage : http://sqlpro.developpez.com/article...clause-window/ A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/ Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp. Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * * |
||||
|
00
|
|
|
#5 |
|
Membre émérite
![]() Serge RUQUETConsultant informatique Inscription : août 2006 Messages : 669 ![]() |
SQL Pro...
On sent bien là le prof (ce n'est pas péjoratif, loin de là)Je pense que sihammaster est un dev .net qui doit faire du SQL (comme beaucoup maintenant dans la vie courante) et que si tu commences à lui faire apprendre les cubes pour la seule requête complexe qu'il aura a écrire c'est un peu lourd; D'autant plus que si d'autres dev de sa boîte tombent sur un cube je pense qu'ils feront la même tête qu'une poule qui trouve une fourchette Je pense qu'un petit curseur serait plus simple a comprendre. Ou il faudrait que MS fasse des syntaxes simples du type Start With d'Oracle. Bonne journée PS: Avant que tu sautes sur ton fauteuil, je sais que la syntaxe d'Oracle n'est pas du SQL, mais il nous faut vivre avec notre temps
__________________
Errare humanum est, perseverare diabolicum (Sénèque) |
|
|
10
|
|
|
#6 |
|
Membre habitué
![]() |
Bonjour,
Merci infiniment ca marche nickel!!!!!, vraiment vous etes le MASTER SQLPRO. Merci bcp serge0934 tu m'a bien compris , je trouve le code .Net plus facile que les requetes complexes parce que je travaill bcp sur le code que sur les requetes.Merci encore |
|
|
00
|
|
|
#7 | |
![]() ![]() ![]() Nicolas SouquetAdministrateur de base de données Inscription : janvier 2005 Messages : 4 669 ![]() |
Citation:
- SQL est un langage ensembliste, donc il est conçu pour traiter les données dans leur ensemble et non ligne à ligne - SQL est un langage déclaratif, donc on ne spécifie par comment on veut obtenir un résultat, mais seulement ce que l'on souhaite obtenir, horizontalement et verticalement. - les curseurs sont terriblement contre-performants. @++
__________________
En bases de données relationnelles SQL, il n'y a ni tableaux, ni enregistrements, ni champs: il y a des tables, des lignes et des colonnes. Blog | Profil| Consulter ou télécharger les fichiers d'aide de SQL Server, des versions 2000 à 2012 |
|
|
00
|
|
|
#8 |
|
Membre émérite
![]() Serge RUQUETConsultant informatique Inscription : août 2006 Messages : 669 ![]() |
je suis d'accord avec toi Elsuket....
mais cela fait 27 ans que je fait du SQL, j'ai commencé chez Sybase a Dallas en 1984, je dois en être a plus de 100 missions en temps que DBA architecte ETUDES, cad que je cotoie des petits jeunes dev pour qui le SQL est un monde à part et je vois bien que depuis une dizaine d'années, ils ne savent même plus ce qu'est un UAR (unité arithmétique et logique) car avec des langages comme Java, il ne savent plus ce qui se passent dans un processeur. Actuellement je bosse pour une société qui a délocalisé le dev SQL de son ERP dans le Sud est asiatique; on reçoit des packages SSIS pour connecter a BO avec des cubes en pagaille, résultat, personne a part moi ne comprends. Voila ce que je voulais exprimer. ![]() J'ai même vu, pour des chargements de fichier plat, des dev qui permettaient de charger les lignes correctes et qui "sautaient" les lignes incorrectes => je te laisse penser au résultat PS: je regarde encore beaucoup vos articles a SQLpro et toi même car ils sont très bien fait; cela me fait de l'autoformation car les formations MS que j'ai suivi ne m'ont pas apportées grand choses.
__________________
Errare humanum est, perseverare diabolicum (Sénèque) |
|
|
00
|
|
|
#9 | |
![]() ![]() ![]() Frédéric BROUARDExpert SGBDR & SQL Inscription : mai 2002 Messages : 10 958 ![]() |
Citation:
je pense qu'après 27 ans de SQL, vous auriez peut être besoin d'un léger rafraichissement ! ;-) A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/ Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp. Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * * |
|
|
00
|
|
|
#10 | |||
![]() ![]() ![]() Nicolas SouquetAdministrateur de base de données Inscription : janvier 2005 Messages : 4 669 ![]() |
Citation:
Je n'ai pas prétendu vous apprendre ce qu'est SQL ni pourquoi il est conçu, mais s'il vous plaît, ne conseillez pas les curseurs ! Je suis sûr que vous savez tout comme moi que même un WHILE est moins moche. Citation:
Citation:
@++
__________________
En bases de données relationnelles SQL, il n'y a ni tableaux, ni enregistrements, ni champs: il y a des tables, des lignes et des colonnes. Blog | Profil| Consulter ou télécharger les fichiers d'aide de SQL Server, des versions 2000 à 2012 |
|||
|
00
|
|
|
#11 | |
|
Membre Expert
![]() |
Citation:
C'est une simple fonction de fenêtrage...
__________________
Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir. |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com