Bonjour à tous,
Pourrais je avoir vos lumières ?!
Je cherche a savoir à quel niveau il est préférable de faire des mises en
forme de texte (concaténation) dans le cas de requêtes imbriquées, et ce
terme de performance notamment ?
Voici un exemple simplifié :
Soit les tables :
Affaire (Numero,IDaffaire,IDContrat) : une affaire comporte 1 ou plusieurs
contrats
Contrat (IDContrat,IDclient) : un contrat porte sur 1 ou plusieurs clients
Client (IDClient,Nom,Prenom) : un client a un nom et un prénom
pour obtenir par exemple cela :
Numero NomClient
-------------------------------------------------- --------------------
A001 Dupont Toto
A001 Durand Pascal
B020 Aribo Lucien
- vaut-il mieux concaténer les champs Nom,Prenom dans la sous requête ? :
SELECT Affaire.Numero, A.NomClient
FROM Affaire
INNER JOIN (SELECT Contrat.IDcontrat, (Client.Nom + ' ' +
AS 'NomClient'
FROM Contrat INNER JOIN Client ON (Contrat.IDclient > Client.IDclient)) AS A
ON (Affaire.IDcontrat = A.IDcontrat)
- ou bien dans la selection finale ? :
SELECT Affaire.Numero, (A.Nom + ' ' + A.Prenom) AS 'NomClient'
FROM Affaire
INNER JOIN (SELECT Contrat.IDcontrat, Client.Nom, Client.Prenom
FROM Contrat INNER JOIN Client ON (Contrat.IDclient > Client.IDclient)) AS A
ON (Affaire.IDcontrat = A.IDcontrat)
Merci de votre expérience,
@+
Thierry.
Bonjour à tous,
Pourrais je avoir vos lumières ?!
Je cherche a savoir à quel niveau il est préférable de faire des mises en
forme de texte (concaténation) dans le cas de requêtes imbriquées, et ce
terme de performance notamment ?
Voici un exemple simplifié :
Soit les tables :
Affaire (Numero,IDaffaire,IDContrat) : une affaire comporte 1 ou plusieurs
contrats
Contrat (IDContrat,IDclient) : un contrat porte sur 1 ou plusieurs clients
Client (IDClient,Nom,Prenom) : un client a un nom et un prénom
pour obtenir par exemple cela :
Numero NomClient
-------------------------------------------------- --------------------
A001 Dupont Toto
A001 Durand Pascal
B020 Aribo Lucien
- vaut-il mieux concaténer les champs Nom,Prenom dans la sous requête ? :
SELECT Affaire.Numero, A.NomClient
FROM Affaire
INNER JOIN (SELECT Contrat.IDcontrat, (Client.Nom + ' ' +
AS 'NomClient'
FROM Contrat INNER JOIN Client ON (Contrat.IDclient > Client.IDclient)) AS A
ON (Affaire.IDcontrat = A.IDcontrat)
- ou bien dans la selection finale ? :
SELECT Affaire.Numero, (A.Nom + ' ' + A.Prenom) AS 'NomClient'
FROM Affaire
INNER JOIN (SELECT Contrat.IDcontrat, Client.Nom, Client.Prenom
FROM Contrat INNER JOIN Client ON (Contrat.IDclient > Client.IDclient)) AS A
ON (Affaire.IDcontrat = A.IDcontrat)
Merci de votre expérience,
@+
Thierry.
Bonjour à tous,
Pourrais je avoir vos lumières ?!
Je cherche a savoir à quel niveau il est préférable de faire des mises en
forme de texte (concaténation) dans le cas de requêtes imbriquées, et ce
terme de performance notamment ?
Voici un exemple simplifié :
Soit les tables :
Affaire (Numero,IDaffaire,IDContrat) : une affaire comporte 1 ou plusieurs
contrats
Contrat (IDContrat,IDclient) : un contrat porte sur 1 ou plusieurs clients
Client (IDClient,Nom,Prenom) : un client a un nom et un prénom
pour obtenir par exemple cela :
Numero NomClient
-------------------------------------------------- --------------------
A001 Dupont Toto
A001 Durand Pascal
B020 Aribo Lucien
- vaut-il mieux concaténer les champs Nom,Prenom dans la sous requête ? :
SELECT Affaire.Numero, A.NomClient
FROM Affaire
INNER JOIN (SELECT Contrat.IDcontrat, (Client.Nom + ' ' +
AS 'NomClient'
FROM Contrat INNER JOIN Client ON (Contrat.IDclient > Client.IDclient)) AS A
ON (Affaire.IDcontrat = A.IDcontrat)
- ou bien dans la selection finale ? :
SELECT Affaire.Numero, (A.Nom + ' ' + A.Prenom) AS 'NomClient'
FROM Affaire
INNER JOIN (SELECT Contrat.IDcontrat, Client.Nom, Client.Prenom
FROM Contrat INNER JOIN Client ON (Contrat.IDclient > Client.IDclient)) AS A
ON (Affaire.IDcontrat = A.IDcontrat)
Merci de votre expérience,
@+
Thierry.
Bonjour à tous,
Pourrais je avoir vos lumières ?!
Je cherche a savoir à quel niveau il est préférable de faire des mises en
forme de texte (concaténation) dans le cas de requêtes imbriquées, et ce en
terme de performance notamment ?
Voici un exemple simplifié :
Soit les tables :
Affaire (Numero,IDaffaire,IDContrat) : une affaire comporte 1 ou plusieurs
contrats
Contrat (IDContrat,IDclient) : un contrat porte sur 1 ou plusieurs clients
Client (IDClient,Nom,Prenom) : un client a un nom et un prénom
pour obtenir par exemple cela :
Numero NomClient
-------------------------------------------------- --------------------
A001 Dupont Toto
A001 Durand Pascal
B020 Aribo Lucien
- vaut-il mieux concaténer les champs Nom,Prenom dans la sous requête ? :
SELECT Affaire.Numero, A.NomClient
FROM Affaire
INNER JOIN (SELECT Contrat.IDcontrat, (Client.Nom + ' ' + Client.Prenom)
AS 'NomClient'
FROM Contrat INNER JOIN Client ON (Contrat.IDclient > Client.IDclient)) AS A
ON (Affaire.IDcontrat = A.IDcontrat)
- ou bien dans la selection finale ? :
SELECT Affaire.Numero, (A.Nom + ' ' + A.Prenom) AS 'NomClient'
FROM Affaire
INNER JOIN (SELECT Contrat.IDcontrat, Client.Nom, Client.Prenom
FROM Contrat INNER JOIN Client ON (Contrat.IDclient > Client.IDclient)) AS A
ON (Affaire.IDcontrat = A.IDcontrat)
Merci de votre expérience,
@+
Thierry.
Bonjour à tous,
Pourrais je avoir vos lumières ?!
Je cherche a savoir à quel niveau il est préférable de faire des mises en
forme de texte (concaténation) dans le cas de requêtes imbriquées, et ce en
terme de performance notamment ?
Voici un exemple simplifié :
Soit les tables :
Affaire (Numero,IDaffaire,IDContrat) : une affaire comporte 1 ou plusieurs
contrats
Contrat (IDContrat,IDclient) : un contrat porte sur 1 ou plusieurs clients
Client (IDClient,Nom,Prenom) : un client a un nom et un prénom
pour obtenir par exemple cela :
Numero NomClient
-------------------------------------------------- --------------------
A001 Dupont Toto
A001 Durand Pascal
B020 Aribo Lucien
- vaut-il mieux concaténer les champs Nom,Prenom dans la sous requête ? :
SELECT Affaire.Numero, A.NomClient
FROM Affaire
INNER JOIN (SELECT Contrat.IDcontrat, (Client.Nom + ' ' + Client.Prenom)
AS 'NomClient'
FROM Contrat INNER JOIN Client ON (Contrat.IDclient > Client.IDclient)) AS A
ON (Affaire.IDcontrat = A.IDcontrat)
- ou bien dans la selection finale ? :
SELECT Affaire.Numero, (A.Nom + ' ' + A.Prenom) AS 'NomClient'
FROM Affaire
INNER JOIN (SELECT Contrat.IDcontrat, Client.Nom, Client.Prenom
FROM Contrat INNER JOIN Client ON (Contrat.IDclient > Client.IDclient)) AS A
ON (Affaire.IDcontrat = A.IDcontrat)
Merci de votre expérience,
@+
Thierry.
Bonjour à tous,
Pourrais je avoir vos lumières ?!
Je cherche a savoir à quel niveau il est préférable de faire des mises en
forme de texte (concaténation) dans le cas de requêtes imbriquées, et ce en
terme de performance notamment ?
Voici un exemple simplifié :
Soit les tables :
Affaire (Numero,IDaffaire,IDContrat) : une affaire comporte 1 ou plusieurs
contrats
Contrat (IDContrat,IDclient) : un contrat porte sur 1 ou plusieurs clients
Client (IDClient,Nom,Prenom) : un client a un nom et un prénom
pour obtenir par exemple cela :
Numero NomClient
-------------------------------------------------- --------------------
A001 Dupont Toto
A001 Durand Pascal
B020 Aribo Lucien
- vaut-il mieux concaténer les champs Nom,Prenom dans la sous requête ? :
SELECT Affaire.Numero, A.NomClient
FROM Affaire
INNER JOIN (SELECT Contrat.IDcontrat, (Client.Nom + ' ' + Client.Prenom)
AS 'NomClient'
FROM Contrat INNER JOIN Client ON (Contrat.IDclient > Client.IDclient)) AS A
ON (Affaire.IDcontrat = A.IDcontrat)
- ou bien dans la selection finale ? :
SELECT Affaire.Numero, (A.Nom + ' ' + A.Prenom) AS 'NomClient'
FROM Affaire
INNER JOIN (SELECT Contrat.IDcontrat, Client.Nom, Client.Prenom
FROM Contrat INNER JOIN Client ON (Contrat.IDclient > Client.IDclient)) AS A
ON (Affaire.IDcontrat = A.IDcontrat)
Merci de votre expérience,
@+
Thierry.
bonjour,
si tu veux des perfomances, il ne faut faire ni l'un ni l'autre, car il
de présentation et non de restitution de données.
SQL est fait pour restituer des données. Ton appli pour les présenter.
faire dans ton application !!!
A lire sur le sujet :
http://sqlpro.developpez.com/SQL_AZ_E.html#Cosmos
A +
News Groups a écrit:
> Bonjour à tous,
>
> Pourrais je avoir vos lumières ?!
> Je cherche a savoir à quel niveau il est préférable de faire des mises
> forme de texte (concaténation) dans le cas de requêtes imbriquées, et ce
> terme de performance notamment ?
>
> Voici un exemple simplifié :
> Soit les tables :
> Affaire (Numero,IDaffaire,IDContrat) : une affaire comporte 1 ou
> contrats
> Contrat (IDContrat,IDclient) : un contrat porte sur 1 ou plusieurs
> Client (IDClient,Nom,Prenom) : un client a un nom et un prénom
>
> pour obtenir par exemple cela :
> Numero NomClient
> -------------------------------------------------- --------------------
> A001 Dupont Toto
> A001 Durand Pascal
> B020 Aribo Lucien
>
> - vaut-il mieux concaténer les champs Nom,Prenom dans la sous requête ?
> SELECT Affaire.Numero, A.NomClient
> FROM Affaire
> INNER JOIN (SELECT Contrat.IDcontrat, (Client.Nom + ' ' +
> AS 'NomClient'
> FROM Contrat INNER JOIN Client ON (Contrat.IDclient > > Client.IDclient)) AS A
> ON (Affaire.IDcontrat = A.IDcontrat)
>
> - ou bien dans la selection finale ? :
> SELECT Affaire.Numero, (A.Nom + ' ' + A.Prenom) AS 'NomClient'
> FROM Affaire
> INNER JOIN (SELECT Contrat.IDcontrat, Client.Nom, Client.Prenom
> FROM Contrat INNER JOIN Client ON (Contrat.IDclient > > Client.IDclient)) AS A
> ON (Affaire.IDcontrat = A.IDcontrat)
>
> Merci de votre expérience,
> @+
>
> Thierry.
>
>
>
>
--
Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste Delphi, web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
************************ www.datasapiens.com *************************
bonjour,
si tu veux des perfomances, il ne faut faire ni l'un ni l'autre, car il
de présentation et non de restitution de données.
SQL est fait pour restituer des données. Ton appli pour les présenter.
faire dans ton application !!!
A lire sur le sujet :
http://sqlpro.developpez.com/SQL_AZ_E.html#Cosmos
A +
News Groups a écrit:
> Bonjour à tous,
>
> Pourrais je avoir vos lumières ?!
> Je cherche a savoir à quel niveau il est préférable de faire des mises
> forme de texte (concaténation) dans le cas de requêtes imbriquées, et ce
> terme de performance notamment ?
>
> Voici un exemple simplifié :
> Soit les tables :
> Affaire (Numero,IDaffaire,IDContrat) : une affaire comporte 1 ou
> contrats
> Contrat (IDContrat,IDclient) : un contrat porte sur 1 ou plusieurs
> Client (IDClient,Nom,Prenom) : un client a un nom et un prénom
>
> pour obtenir par exemple cela :
> Numero NomClient
> -------------------------------------------------- --------------------
> A001 Dupont Toto
> A001 Durand Pascal
> B020 Aribo Lucien
>
> - vaut-il mieux concaténer les champs Nom,Prenom dans la sous requête ?
> SELECT Affaire.Numero, A.NomClient
> FROM Affaire
> INNER JOIN (SELECT Contrat.IDcontrat, (Client.Nom + ' ' +
> AS 'NomClient'
> FROM Contrat INNER JOIN Client ON (Contrat.IDclient > > Client.IDclient)) AS A
> ON (Affaire.IDcontrat = A.IDcontrat)
>
> - ou bien dans la selection finale ? :
> SELECT Affaire.Numero, (A.Nom + ' ' + A.Prenom) AS 'NomClient'
> FROM Affaire
> INNER JOIN (SELECT Contrat.IDcontrat, Client.Nom, Client.Prenom
> FROM Contrat INNER JOIN Client ON (Contrat.IDclient > > Client.IDclient)) AS A
> ON (Affaire.IDcontrat = A.IDcontrat)
>
> Merci de votre expérience,
> @+
>
> Thierry.
>
>
>
>
--
Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste Delphi, web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
************************ www.datasapiens.com *************************
bonjour,
si tu veux des perfomances, il ne faut faire ni l'un ni l'autre, car il
de présentation et non de restitution de données.
SQL est fait pour restituer des données. Ton appli pour les présenter.
faire dans ton application !!!
A lire sur le sujet :
http://sqlpro.developpez.com/SQL_AZ_E.html#Cosmos
A +
News Groups a écrit:
> Bonjour à tous,
>
> Pourrais je avoir vos lumières ?!
> Je cherche a savoir à quel niveau il est préférable de faire des mises
> forme de texte (concaténation) dans le cas de requêtes imbriquées, et ce
> terme de performance notamment ?
>
> Voici un exemple simplifié :
> Soit les tables :
> Affaire (Numero,IDaffaire,IDContrat) : une affaire comporte 1 ou
> contrats
> Contrat (IDContrat,IDclient) : un contrat porte sur 1 ou plusieurs
> Client (IDClient,Nom,Prenom) : un client a un nom et un prénom
>
> pour obtenir par exemple cela :
> Numero NomClient
> -------------------------------------------------- --------------------
> A001 Dupont Toto
> A001 Durand Pascal
> B020 Aribo Lucien
>
> - vaut-il mieux concaténer les champs Nom,Prenom dans la sous requête ?
> SELECT Affaire.Numero, A.NomClient
> FROM Affaire
> INNER JOIN (SELECT Contrat.IDcontrat, (Client.Nom + ' ' +
> AS 'NomClient'
> FROM Contrat INNER JOIN Client ON (Contrat.IDclient > > Client.IDclient)) AS A
> ON (Affaire.IDcontrat = A.IDcontrat)
>
> - ou bien dans la selection finale ? :
> SELECT Affaire.Numero, (A.Nom + ' ' + A.Prenom) AS 'NomClient'
> FROM Affaire
> INNER JOIN (SELECT Contrat.IDcontrat, Client.Nom, Client.Prenom
> FROM Contrat INNER JOIN Client ON (Contrat.IDclient > > Client.IDclient)) AS A
> ON (Affaire.IDcontrat = A.IDcontrat)
>
> Merci de votre expérience,
> @+
>
> Thierry.
>
>
>
>
--
Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste Delphi, web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
************************ www.datasapiens.com *************************
Merci de la précision
et au passage (sans flaterie mal placée) merci pour ton site et de la
rigueur qui en découle sur le standard SQL
c'est une trés bonne base d'apprentissage et du bon savoir faire pour des
débutants comme moi.
Quant à ma demande précédente, je ne peux effectivement aller que dans ton
sens, mais cela me pose le cas suivant :
Si ma requête est utlisée comme source de plusieurs états dans access* et si
la mise en forme "Nom Prénom" change par exemple en "Nom - Prénom" il parait
plus immédiat de changer la mise en forme à la source : (Client.Nom + '- ' +
Client.Prenom) AS 'NomClient' que de modifier chaque état, non ??, c'est
tout le problème de la limite de traitement entre les données et
l'applicatif en fonction des perfs / de la souplesse de changement ...
J'ai peut-être dis une énormité, mais justement j'attends ton avis pour
améliorer cela.
Merci encore,
Thierry.
notes :
*je sais Access n'est pas le meilleur exemple! mais là il n'est utilisé que
comme interface, précision : Projet ADP + SQL Server via OLE DB
"Fred BROUARD" a écrit dans le message de news:bonjour,
si tu veux des perfomances, il ne faut faire ni l'un ni l'autre, car il
s'agitde présentation et non de restitution de données.
SQL est fait pour restituer des données. Ton appli pour les présenter.
Donc, àfaire dans ton application !!!
A lire sur le sujet :
http://sqlpro.developpez.com/SQL_AZ_E.html#Cosmos
A +
News Groups a écrit:Bonjour à tous,
Pourrais je avoir vos lumières ?!
Je cherche a savoir à quel niveau il est préférable de faire des mises
enforme de texte (concaténation) dans le cas de requêtes imbriquées, et ce
enterme de performance notamment ?
Voici un exemple simplifié :
Soit les tables :
Affaire (Numero,IDaffaire,IDContrat) : une affaire comporte 1 ou
plusieurscontrats
Contrat (IDContrat,IDclient) : un contrat porte sur 1 ou plusieurs
clientsClient (IDClient,Nom,Prenom) : un client a un nom et un prénom
pour obtenir par exemple cela :
Numero NomClient
-------------------------------------------------- --------------------
A001 Dupont Toto
A001 Durand Pascal
B020 Aribo Lucien
- vaut-il mieux concaténer les champs Nom,Prenom dans la sous requête ?
:SELECT Affaire.Numero, A.NomClient
FROM Affaire
INNER JOIN (SELECT Contrat.IDcontrat, (Client.Nom + ' ' +
Client.Prenom)AS 'NomClient'
FROM Contrat INNER JOIN Client ON (Contrat.IDclient >>>Client.IDclient)) AS A
ON (Affaire.IDcontrat = A.IDcontrat)
- ou bien dans la selection finale ? :
SELECT Affaire.Numero, (A.Nom + ' ' + A.Prenom) AS 'NomClient'
FROM Affaire
INNER JOIN (SELECT Contrat.IDcontrat, Client.Nom, Client.Prenom
FROM Contrat INNER JOIN Client ON (Contrat.IDclient >>>Client.IDclient)) AS A
ON (Affaire.IDcontrat = A.IDcontrat)
Merci de votre expérience,
@+
Thierry.
--
Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste Delphi, web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
************************ www.datasapiens.com *************************
Merci de la précision
et au passage (sans flaterie mal placée) merci pour ton site et de la
rigueur qui en découle sur le standard SQL
c'est une trés bonne base d'apprentissage et du bon savoir faire pour des
débutants comme moi.
Quant à ma demande précédente, je ne peux effectivement aller que dans ton
sens, mais cela me pose le cas suivant :
Si ma requête est utlisée comme source de plusieurs états dans access* et si
la mise en forme "Nom Prénom" change par exemple en "Nom - Prénom" il parait
plus immédiat de changer la mise en forme à la source : (Client.Nom + '- ' +
Client.Prenom) AS 'NomClient' que de modifier chaque état, non ??, c'est
tout le problème de la limite de traitement entre les données et
l'applicatif en fonction des perfs / de la souplesse de changement ...
J'ai peut-être dis une énormité, mais justement j'attends ton avis pour
améliorer cela.
Merci encore,
Thierry.
notes :
*je sais Access n'est pas le meilleur exemple! mais là il n'est utilisé que
comme interface, précision : Projet ADP + SQL Server via OLE DB
"Fred BROUARD" <brouardf@club-internet.fr> a écrit dans le message de news:
eG6e5GciEHA.3476@tk2msftngp13.phx.gbl...
bonjour,
si tu veux des perfomances, il ne faut faire ni l'un ni l'autre, car il
s'agit
de présentation et non de restitution de données.
SQL est fait pour restituer des données. Ton appli pour les présenter.
Donc, à
faire dans ton application !!!
A lire sur le sujet :
http://sqlpro.developpez.com/SQL_AZ_E.html#Cosmos
A +
News Groups a écrit:
Bonjour à tous,
Pourrais je avoir vos lumières ?!
Je cherche a savoir à quel niveau il est préférable de faire des mises
en
forme de texte (concaténation) dans le cas de requêtes imbriquées, et ce
en
terme de performance notamment ?
Voici un exemple simplifié :
Soit les tables :
Affaire (Numero,IDaffaire,IDContrat) : une affaire comporte 1 ou
plusieurs
contrats
Contrat (IDContrat,IDclient) : un contrat porte sur 1 ou plusieurs
clients
Client (IDClient,Nom,Prenom) : un client a un nom et un prénom
pour obtenir par exemple cela :
Numero NomClient
-------------------------------------------------- --------------------
A001 Dupont Toto
A001 Durand Pascal
B020 Aribo Lucien
- vaut-il mieux concaténer les champs Nom,Prenom dans la sous requête ?
:
SELECT Affaire.Numero, A.NomClient
FROM Affaire
INNER JOIN (SELECT Contrat.IDcontrat, (Client.Nom + ' ' +
Client.Prenom)
AS 'NomClient'
FROM Contrat INNER JOIN Client ON (Contrat.IDclient >>>Client.IDclient)) AS A
ON (Affaire.IDcontrat = A.IDcontrat)
- ou bien dans la selection finale ? :
SELECT Affaire.Numero, (A.Nom + ' ' + A.Prenom) AS 'NomClient'
FROM Affaire
INNER JOIN (SELECT Contrat.IDcontrat, Client.Nom, Client.Prenom
FROM Contrat INNER JOIN Client ON (Contrat.IDclient >>>Client.IDclient)) AS A
ON (Affaire.IDcontrat = A.IDcontrat)
Merci de votre expérience,
@+
Thierry.
--
Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste Delphi, web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
************************ www.datasapiens.com *************************
Merci de la précision
et au passage (sans flaterie mal placée) merci pour ton site et de la
rigueur qui en découle sur le standard SQL
c'est une trés bonne base d'apprentissage et du bon savoir faire pour des
débutants comme moi.
Quant à ma demande précédente, je ne peux effectivement aller que dans ton
sens, mais cela me pose le cas suivant :
Si ma requête est utlisée comme source de plusieurs états dans access* et si
la mise en forme "Nom Prénom" change par exemple en "Nom - Prénom" il parait
plus immédiat de changer la mise en forme à la source : (Client.Nom + '- ' +
Client.Prenom) AS 'NomClient' que de modifier chaque état, non ??, c'est
tout le problème de la limite de traitement entre les données et
l'applicatif en fonction des perfs / de la souplesse de changement ...
J'ai peut-être dis une énormité, mais justement j'attends ton avis pour
améliorer cela.
Merci encore,
Thierry.
notes :
*je sais Access n'est pas le meilleur exemple! mais là il n'est utilisé que
comme interface, précision : Projet ADP + SQL Server via OLE DB
"Fred BROUARD" a écrit dans le message de news:bonjour,
si tu veux des perfomances, il ne faut faire ni l'un ni l'autre, car il
s'agitde présentation et non de restitution de données.
SQL est fait pour restituer des données. Ton appli pour les présenter.
Donc, àfaire dans ton application !!!
A lire sur le sujet :
http://sqlpro.developpez.com/SQL_AZ_E.html#Cosmos
A +
News Groups a écrit:Bonjour à tous,
Pourrais je avoir vos lumières ?!
Je cherche a savoir à quel niveau il est préférable de faire des mises
enforme de texte (concaténation) dans le cas de requêtes imbriquées, et ce
enterme de performance notamment ?
Voici un exemple simplifié :
Soit les tables :
Affaire (Numero,IDaffaire,IDContrat) : une affaire comporte 1 ou
plusieurscontrats
Contrat (IDContrat,IDclient) : un contrat porte sur 1 ou plusieurs
clientsClient (IDClient,Nom,Prenom) : un client a un nom et un prénom
pour obtenir par exemple cela :
Numero NomClient
-------------------------------------------------- --------------------
A001 Dupont Toto
A001 Durand Pascal
B020 Aribo Lucien
- vaut-il mieux concaténer les champs Nom,Prenom dans la sous requête ?
:SELECT Affaire.Numero, A.NomClient
FROM Affaire
INNER JOIN (SELECT Contrat.IDcontrat, (Client.Nom + ' ' +
Client.Prenom)AS 'NomClient'
FROM Contrat INNER JOIN Client ON (Contrat.IDclient >>>Client.IDclient)) AS A
ON (Affaire.IDcontrat = A.IDcontrat)
- ou bien dans la selection finale ? :
SELECT Affaire.Numero, (A.Nom + ' ' + A.Prenom) AS 'NomClient'
FROM Affaire
INNER JOIN (SELECT Contrat.IDcontrat, Client.Nom, Client.Prenom
FROM Contrat INNER JOIN Client ON (Contrat.IDclient >>>Client.IDclient)) AS A
ON (Affaire.IDcontrat = A.IDcontrat)
Merci de votre expérience,
@+
Thierry.
--
Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste Delphi, web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
************************ www.datasapiens.com *************************