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

MS SQL Server Discussion :

[SQL Server 8.00.02] requêtes multiples sur le résultat d'une requête


Sujet :

MS SQL Server

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2005
    Messages : 2
    Points : 1
    Points
    1
    Par défaut [SQL Server 8.00.02] requêtes multiples sur le résultat d'une requête
    bonjour,
    dans le cadre d'une application web, j'effectue une recherche complexe (et lourde) me donnant un résultat de 15000 lignes dont je n'affiche que les 50 premières à l'écran.
    j'aimerais cependant construire des filtres (select box) sur plusieurs colonnes pour la liste complète des résultats. pour cela il faut que je connaisse toutes les valeurs distinctes de chacune des colonnes utilisées comme filtre, sur l'ensemble des 15000 résultats.

    la requête initiale concerne une jointure entre une dizaine de tables avec une clause where complexe mais pour fixer les idées, imaginons que nous avons deux tables:
    GARAGES (code_garage, rue, localite, pays)
    VEHICULES (code_vehicule, code_garage, marque, carburant)

    une requête initiale

    SELECT * FROM garages g JOIN vehicules v on g.code_garage=v.code_garage WHERE pays='FR';

    donnant 15000 résultats.

    pour ces 15000 résultats, il me faudrait pouvoir faire quelque chose comme:

    SELECT DISTINCT localite FROM "resultats"
    SELECT DISTINCT marque FROM "resultats"
    SELECT DISTINCT carburant FROM "resultats"

    qui me permettrait de construire les filtres ad-hoc sur l'ensemble des résultats de sorte que l'utilisateur puisse n'afficher qu'un sous-ensemble des résultats en sélectionnant une valeur dans ces filtres.

    est-il possible de réaliser ceci uniquement en sql?

    merci pour votre aide!

  2. #2
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    Par défaut
    Bonjour,

    Tu peux stocker le résultat de ta requête dans une variable table ou dans une table temporaire en faisant au choix:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    DECLARE @maTable TABLE (mesColonnes)
    INSERT @maTable 
    SELECT quiRamène15000Lignes
    et récupérer le resultSet (la table est détruite à la fin de l'exécution), ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT mesColonnes
    INTO #maTable
    WHERE quiRamène15000Lignes
    Cette table est stockée dans TempDB jusqu'à ce que tu fasses

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2005
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par elsuket Voir le message
    Cette table est stockée dans TempDB jusqu'à ce que tu fasses
    merci beaucoup pour les solutions: la deuxième est celle que j'ai implémentée et fonctionne parfaitement!

    toutefois, est-ce qu'il existe un système d'auto-nettoyage de TempDB au cas où le "DROP TABLE #maTable" n'est jamais exécuté? si oui, peut-on régler la périodicité de ce nettoyage?

    merci!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment faire boucler un job sur le résultat d'une requête SQL ?
    Par galadorn dans le forum Développement de jobs
    Réponses: 1
    Dernier message: 27/04/2011, 11h42
  2. Calcul ligne par ligne sur le résultat d'une requête
    Par CanardJM dans le forum Langage SQL
    Réponses: 5
    Dernier message: 15/04/2008, 13h06
  3. Effectuer une opération sur le résultat d'une requête
    Par egg3774 dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 13/03/2008, 14h29
  4. Requête sur les résultats d'une requête
    Par kiro57 dans le forum ASP.NET
    Réponses: 2
    Dernier message: 17/10/2007, 17h48
  5. [Etat] Basé sur le résultat d'une requête
    Par Pascal26 dans le forum WinDev
    Réponses: 13
    Dernier message: 12/04/2007, 09h04

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