Précédent   Forum des professionnels en informatique > Bases de données > DB2
DB2 Forum d'entraide technique sur la base de données DB2. Voir aussi -> Rubrique DB2
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 30/01/2007, 17h48   #1
Rédacteur/Modérateur
 
Avatar de JauB
 
Homme Faisel
Ingénieur COBOL/AS400
Inscription : octobre 2005
Messages : 1 713
Détails du profil
Informations personnelles :
Nom : Homme Faisel
Âge : 31
Localisation : Maroc

Informations professionnelles :
Activité : Ingénieur COBOL/AS400
Secteur : Finance

Informations forums :
Inscription : octobre 2005
Messages : 1 713
Points : 2 712
Points : 2 712
Envoyer un message via AIM à JauB Envoyer un message via MSN à JauB Envoyer un message via Yahoo à JauB
Par défaut Optimisation des fonctions?

Bonjour,
je chercher à executer une requête ensemble de tables sur un champ X avec un paramètre Y et je veux que ma requête s'execute automatiquement sur le champ X avec le paramètre Y+1 au sein de la même requête. ceci je pense peut ête fait par les fonctions (ou par l'union aussi).
exemple :

Code :
1
2
3
SELECT ma.Nom, maFonction(Y+1)
FROM maTable ma
WHERE champX=Y
avec :
maFonction est une fonction contenant la même requête précédente et qui pour paramètre Y+1 :

maFonction: return SELECT ma.NOM FROM maTable WHERE champX=Y+1


ma question est : est ce qu'il y a moyen d'optimiser tout ça vu que ma fonction réexecute la même requête ce qui n'est pas bon!
Merci
__________________
*** Ingénieur COBOL/AS400 ***

-------------------------------------------------------------------

Mes articles, Mon Blog

Rubrique Jasper/iReport :
------- Forum Jasper --------
----- FAQ Jasper/iReport -----

JauB est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2007, 20h33   #2
jab
Rédacteur
 
Avatar de jab
 
Homme Jean-Alain Baeyens
SharePoint developpeur
Inscription : février 2004
Messages : 1 172
Détails du profil
Informations personnelles :
Nom : Homme Jean-Alain Baeyens
Âge : 48
Localisation : Belgique

Informations professionnelles :
Activité : SharePoint developpeur
Secteur : Service public

Informations forums :
Inscription : février 2004
Messages : 1 172
Points : 3 131
Points : 3 131
Envoyer un message via ICQ à jab Envoyer un message via MSN à jab Envoyer un message via Skype™ à jab
J'ai du mal à comprendre

Si tu proposes union comme solution alors pourquoi pas ceci
Code :
1
2
3
SELECT ma.Nom
FROM ma
WHERE champX=Y OR champX=Y+1
Ou probablement mieux si champx est indexé

Code :
1
2
3
SELECT ma.Nom
FROM ma
WHERE champX>=Y AND champX<=Y+1
Si tu veux les noms un à côté de l'autre

Code :
1
2
3
SELECT ma.Nom, mabis.nom
FROM ma JOIN ma AS mabis ON ma.champx+1=mabis.champX
WHERE ma.champX=Y
Syntaxe à vérifiée mais l'idée est la.
jab est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/01/2007, 17h33   #3
Membre Expert
 
Inscription : novembre 2004
Messages : 1 298
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 1 298
Points : 1 355
Points : 1 355
Par défaut ?

JauB,

Ta question n'est pas claire et on a du mal à comprendre ce que tu cherches à faire. Peux-tu développer un peu plus ton souci pour nous éclairer ?
Mercure est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/01/2007, 18h56   #4
Rédacteur/Modérateur
 
Avatar de JauB
 
Homme Faisel
Ingénieur COBOL/AS400
Inscription : octobre 2005
Messages : 1 713
Détails du profil
Informations personnelles :
Nom : Homme Faisel
Âge : 31
Localisation : Maroc

Informations professionnelles :
Activité : Ingénieur COBOL/AS400
Secteur : Finance

Informations forums :
Inscription : octobre 2005
Messages : 1 713
Points : 2 712
Points : 2 712
Envoyer un message via AIM à JauB Envoyer un message via MSN à JauB Envoyer un message via Yahoo à JauB
je cherche tout simplement un moyen pour éviter l'utilisation des fonctions dans mes requêtes car à chaque fois ma fonction réexecute la même requête du SELECT!

select t1.a, maFonction(t1.b)
from table t1
where t1.c=X

maFonction returns select t1.d from table t1 where t1.c=b

!
__________________
*** Ingénieur COBOL/AS400 ***

-------------------------------------------------------------------

Mes articles, Mon Blog

Rubrique Jasper/iReport :
------- Forum Jasper --------
----- FAQ Jasper/iReport -----

JauB est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/01/2007, 19h26   #5
Membre Expert
 
Inscription : novembre 2004
Messages : 1 298
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 1 298
Points : 1 355
Points : 1 355
Tu dis :
Citation:
je cherche tout simplement un moyen pour éviter l'utilisation des fonctions dans mes requêtes...
Si tu veux éviter l'utilisation des fonctions dans tes requêtes, alors n'indique pas de fonctions() sur les instructions SQL ???

Désolé, je suis peut-être bouché mais je ne comprends toujours pas.
Mercure est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/01/2007, 20h47   #6
jab
Rédacteur
 
Avatar de jab
 
Homme Jean-Alain Baeyens
SharePoint developpeur
Inscription : février 2004
Messages : 1 172
Détails du profil
Informations personnelles :
Nom : Homme Jean-Alain Baeyens
Âge : 48
Localisation : Belgique

Informations professionnelles :
Activité : SharePoint developpeur
Secteur : Service public

Informations forums :
Inscription : février 2004
Messages : 1 172
Points : 3 131
Points : 3 131
Envoyer un message via ICQ à jab Envoyer un message via MSN à jab Envoyer un message via Skype™ à jab
Citation:
Envoyé par Mercure
Désolé, je suis peut-être bouché mais je ne comprends toujours pas.
+1

Si j'ai bien compris,
l'idée est de faire:
Code :
1
2
 
SELECT t1.a, maFonction(t1.b) FROM maTable WHERE t1.C=X
et maFonction effectue
Code :
1
2
 
SELECT t1.a FROM maTable WHERE t1.C=X
ou X est T1.b du premier select

c'est cà ?
jab est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h26.


 
 
 
 
Partenaires

Hébergement Web