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

Langage SQL Discussion :

Problème de requête récursive


Sujet :

Langage SQL

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    24
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 24
    Points : 17
    Points
    17
    Par défaut Problème de requête récursive
    Bonjour,

    J'utilise MSSQL comme SGBD

    Pour tester les requêtes
    http://dormeur.info.iut.u-bordeaux1....ot/TM/test.php

    Table Forum
    Forum(CODE, SUJET, DATE_CREATION, PRECEDENT, #CODE_LECTEUR)

    Page des premiers posts:
    http://dormeur.info.iut.u-bordeaux1....php?page=forum

    Page d'un post
    http://dormeur.info.iut.u-bordeaux1....orum&voir=3404

    Comme on peut le voir le précédent correspond à un post plus haut dans la hiérarchie.

    Je souhaiterais que sur la page des 'premiers posts' affiche le nombre de messages postés et la date du dernier poste (et non sa date de création) ainsi que tout soit trier sur la date.

    Cette requête dépasse mes compétences niarf

    Voici la requête que j'utilise pour l'instant pour afficher les premiers posts

    Sous mssql
    $nbppage => Nb par page
    $deb => Page du début
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT TOP $nbppage code, sujet, date_creation, code_lecteur 
    FROM Forum
    WHERE (precedent = 0 or precedent is null) AND code NOT IN
    (SELECT TOP $deb code FROM Forum where (precedent = 0 or precedent is null) order by date_creation desc)
    order by date_creation desc;
    Merci d'avance pour votre aide

  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 922
    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 922
    Points : 51 717
    Points
    51 717
    Billets dans le blog
    6
    Par défaut
    Il faut utiliser une CTE (common table expression) pour gérer la récursivité en SQL.

    Lisez l'article que j'ai écrit à ce sujet :
    http://www.sqlservercentral.com/colu...server2005.asp

    Sinon, mon livre, SQL collection Synthex co écrit avec C. Soutou, page 187 à 191.

    A +

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    24
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 24
    Points : 17
    Points
    17
    Par défaut
    D'accord vu que j'ai pas les droits pour créer ce type de table je ne peut pas le faire :X

    Merci du renseignement :]

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

Discussions similaires

  1. [2005] Problème type de données dans requête récursive
    Par patlepirate dans le forum Développement
    Réponses: 16
    Dernier message: 04/04/2014, 16h16
  2. Problème requête récursive
    Par weebo dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 09/11/2011, 11h27
  3. Problème de requête récursive sous Oracle 10
    Par boulgom12 dans le forum Oracle
    Réponses: 1
    Dernier message: 13/12/2006, 10h54
  4. [SQL Server]Problème avec une requête récursive
    Par evans dans le forum Langage SQL
    Réponses: 3
    Dernier message: 05/04/2006, 21h16
  5. Problème dans requête avec count()
    Par BadFox dans le forum Requêtes
    Réponses: 3
    Dernier message: 08/07/2003, 19h02

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