IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement SQL Server Discussion :

Requête Select avec Like très longue


Sujet :

Développement SQL Server

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 97
    Points : 40
    Points
    40
    Par défaut Requête Select avec Like très longue
    Bonjour à tous,

    Dans la BDD de mon ERP figurent des articles sur lesquels nous réalisons des ventes et d'autres qui ne sont que des composants de ces produits que nous vendons.
    Mon objectif est de pouvoir mettre en face des articles "composants" non vendus la somme des ventes réalisées sur les articles "composés" correspondants.
    Ainsi sur les fiches articles de ces composants j'ai crée un champ composant (nommé Composant) dans lequel figure:
    - soit la référence produit exacte de l'article composé si celui-ci est unique
    - soit une référence reprenant le début des codes des articles de composés s'il y en a plusieurs => par ex W 6055% pour les composés W 6055 305, W 6055 507, W 6055 605 ... qui sont tous associés au composant 6055 T1 CAR
    Ensuite j'ai crée une requête qui pour chaque article composant somme les ventes réalisées sur tous les composés associés du type:
    SELECT ProduitCode,
    SUM (QteVente) FROM TablesdesVentes WHERE TabledesVentes.ProduitCode LIKE Composant

    Le problème est que déjà sur une petite sélection de produits cette requête est très très longue.

    Pourriez-vous me donner quelques conseils sur la méthode à suivre pour résoudre ce problème.

    Merci à vous.

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 772
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 772
    Points : 52 732
    Points
    52 732
    Billets dans le blog
    5
    Par défaut
    Chaque fois que vous violerez les formes normales vous aurez des performances de merde. Le 1FN impose des attributs atomique. En mettant dans une même colonne plusieurs éléments vous violez la 1FN et les performances sont merdiques.
    Il suffit de bien modéliser et vous retrouverez des performances normales.
    Dans votre cas il faut une table de jointure découlant de l'association n:m entre article et article composé.

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

Discussions similaires

  1. Requête SELECT avec LIKE
    Par modafine dans le forum PL/SQL
    Réponses: 1
    Dernier message: 06/08/2012, 16h55
  2. [2.x] Selection multiple avec liste très longue
    Par maarek dans le forum Symfony
    Réponses: 2
    Dernier message: 07/02/2012, 14h17
  3. Réponses: 3
    Dernier message: 09/06/2008, 09h17
  4. [MySQL] Requête SELECT avec LIKE : pb de CASSE
    Par pcayrol dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 05/06/2007, 20h11
  5. [Débutant] Requête SELECT avec max et sous-requête
    Par joefou dans le forum Langage SQL
    Réponses: 2
    Dernier message: 27/07/2005, 14h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo