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 :

Sélection par tranche


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut Sélection par tranche
    Bonjour a tous.

    Je viens vers vous car je ne trouve plus un tuto qui permets de faire des sélections de données dans une table par tranche. J'avais vu un tuto vachement bien fait il y a plusieurs mois, mais impossible de le retrouver.

    En gros, je voudrais pouvoir prendre mes enregistrements 12 par 12.
    Pour le premier, facile, je peux faire un TOP 12, mais pour la suite, je sais pas faire, pour les 13 à 24.

    Donc je voudrais, comme le proposait le tuto, faire une procstock qui prend un paramettre et le multiplie par 12 pour aller faire la sélection du 13 à 24 ou du 25 à 36 et ainsi de suite.

    Avez une url ou une indication ?

    Merci d'avance.

  2. #2
    Membre Expert

    Homme Profil pro
    Chargé de Développement et d'Analyse de données
    Inscrit en
    Mars 2010
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé de Développement et d'Analyse de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 278
    Etienne ZINZINDOHOUE
    Billets-Articles

  3. #3
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 998
    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 998
    Billets dans le blog
    6
    Par défaut
    Si vos tranches sont des tranches fonctionnelles, le moyen le plus simple est de créer une table stockant les tranches et une vue sur cette table et de faire une jointure avec votre table de production.

    Exemple : calculer le nombre de clients par tranche d'age :
    0 - 18
    18 - 25
    25 - 35
    35 - 45
    45 - 60
    60 - 70
    70 - 80
    80 -...

    La table :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    CREATE TABLE T_TRANCHE_TRC
    (TRC_ID         INT IDENTITY PRIMARY KEY,
     TRC_VALEUR     FLOAT NOT NULL UNIQUE)
    Les valeurs de tranches
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    INSERT INTO T_TRANCHE_TRC VALUES
    (0),
    (18),
    (25),
    (35),
    (45),
    (60),
    (70),
    (80)
    La vue :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    CREATE VIEW V_TRANCHE_TRC
    AS
    SELECT TRC_ID, TRC_VALEUR AS VALEUR_BASSE,
           (SELECT MIN(TRC_VALEUR)
            FROM   T_TRANCHE_TRC AS Tin
            WHERE  Tin.TRC_VALEUR > Tout.TRC_VALEUR) AS VALEUR_HAUTE
    FROM   T_TRANCHE_TRC AS Tout;
    La requête finale
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT VALEUR_BASSE, VALEUR_HAUTE, COUNT(*) AS NOMBRE
    FROM   S_PRS.T_PERSONNE_PHYSIQUE_PSP AS T
           INNER JOIN V_TRANCHE_TRC AS V
                 ON PSP_AGE_CALC >= VALEUR_BASSE
                    AND PSP_AGE_CALC < VALEUR_HAUTE
    GROUP  BY VALEUR_BASSE, VALEUR_HAUTE
    Le résultat :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    VALEUR_BASSE           VALEUR_HAUTE           NOMBRE
    ---------------------- ---------------------- -----------
    18                     25                     8
    25                     35                     37
    35                     45                     26
    45                     60                     17
    60                     70                     3
    70                     80                     11
    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/ * * * * *

  4. #4
    Membre Expert Avatar de iberserk
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Novembre 2004
    Messages
    1 795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 795
    Par défaut
    Pour le premier, facile, je peux faire un TOP 12, mais pour la suite, je sais pas faire, pour les 13 à 24.
    Vous pouvez passer par les fonctions de fenêtrage (ROW_NUMBER() etc.) puis ne prendre que les valeurs comprises entre 13 et 24 (BETWEEN 13 and 24).

    Sinon la pagination (car c'est surement de ça qu'il s'agit) est géré nativement dans SQL SERVER 2012

  5. #5
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    Merci à tous, j'ai tout compris ou presque ?

    @zinzeneti : super tuto, très clair qui m'apporte LA réponse que je cherchais.

    @sqlpro : interressant come pratique, faut que je planche pour bien comprendre, mais ce n'est pas exactement ce dont j'ai besoins. Mais un grand merci pour cette démonstration très claire et très détaillée. j'ai besoisn de récupérer des donnée en fonction d'un classment apr date. Il s'agit de news sur un site web classé par ordre de date de création que je dois afficher par paquet de 12 pour faire la pagination sur le site avec de l'AJAX pour afficher page après page.

    @iberserk : oui, c'est la pagination, j'avais pas le terme exact en rédigeant me première demande. Et avec le tuto de zinzinetti, j'ai tout bien trouvé.

    Maintenant je n'ai plus que mon souci de variable à régler et je vais pouvoir finaliser mon module.

    Merci à tous et un bon week-end à vous.

  6. #6
    Membre actif
    Homme Profil pro
    R&D
    Inscrit en
    Avril 2004
    Messages
    127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : R&D

    Informations forums :
    Inscription : Avril 2004
    Messages : 127
    Par défaut
    zooffy,

    En fait il existe plusieurs méthodes de pagination.
    Voir les exemples/tests

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 21/06/2011, 12h11
  2. Editeur de texte qui fait la sélection par colonne
    Par wodel dans le forum Windows XP
    Réponses: 5
    Dernier message: 10/11/2010, 13h45
  3. Récupérer des enregistrements par tranche horaire
    Par olive_le_malin dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 19/05/2006, 16h53
  4. Regroupement par tranche dans une requete SQL (MS SQL)
    Par AODRENN dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 21/03/2006, 13h21
  5. Couleur de sélection par défaut
    Par sicard_51 dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 20/04/2003, 23h35

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