|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | |||
|
Membre actif
![]() Développeur .NET Inscription : janvier 2008 Messages : 209 ![]() |
Bonjour à tous;
en fait j'ai tenté de faire un appel à une fonction dans une autre fonction comme suit Code :
Citation:
|
|||
|
|
00
|
|
|
#2 |
![]() ![]() ![]() Frédéric BROUARDExpert SGBDR & SQL Inscription : mai 2002 Messages : 10 950 ![]() |
Utilisez des alias. Virez les parenthèses inutiles.
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 Expert
![]() ![]() Inscription : janvier 2010 Messages : 1 084 ![]() |
bonjour,
Utilises un alias pour ta fonction table AcReliquat2 : Code sql :
|
||
|
|
00
|
|
|
#4 | ||
![]() ![]() ![]() Nicolas SouquetAdministrateur de base de données Inscription : janvier 2005 Messages : 4 665 ![]() |
Bonjour,
J'ai rarement vu une requête aussi moche et fausse. - Les parenthèses inutiles sont ... inutiles et pourrissent la lisibilité du code - le code n'est pas indenté - les tables ne sont ni qualifiées, ni aliasées - les alias de colonnes sont utilisés comme colonnes (PUNetsHTS n'est pas une colonne mais un alias, dès lors tout "calcul" est impossible) - il y a des jointures entre des fonctions tables qui spécifient le paramètre Ce qui fait que l'on peut réécrire votre fonction comme suit : Code :
![]() Les 4 dernières lignes du SELECT sont à mon sens inutiles et peuvent être calculées côté applicatif. En outre, vous semblez confondre ce qu'est une fonction et une procédure. D'autre part les fonctions définies par l'utilisateur sont connues sous SQL Server pour être contre-performantes plus que pour être utiles. Essayez donc de remplacer le code de vos fonctions par des procédures. Il semble que vous codiez en cherchant à faire du ligne à ligne, ce pour quoi un SGBDR SQL n'est pas conçu : il traite les données dans leur ensemble, et c'est ce qui fait que l'accès aux données dans les bases de données modernes est très rapide ... à condition d'avoir un bon modèle de données et d'être scrupuleux dans l'écriture du code @++
__________________
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
|
|
|
#5 |
|
Membre actif
![]() Développeur .NET Inscription : janvier 2008 Messages : 209 ![]() |
Bonjour;
Merci infiniment elsuket, en fait pour le code c'était pas le mien c'est des requêtes MS Access dont je dois faire la traduction mais bon j'aurais dû faire mieux
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com