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

SQL Oracle Discussion :

Problème de syntaxe


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 3
    Par défaut Problème de syntaxe
    Bonjour, j'ai commencé le SQL il y a peu de temps dans le cadre de mes études, ainsi notre enseignant nous a imposé d'effectuer un tri sur un jeu de données en réalisanrt un tri par mois et d'attribuer un rang en fonction des bénéfices réalisés. La difficulté est de ne pas utiliser de "PARTITION BY".
    Voila ma requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT mois, customer AS nom_client, sum(montant) AS Montant_Vente, RANK() OVER(order by mois) AS RANK
    FROM vte_client_type_prod, clients
    WHERE vte_client_type_prod.code_client=clients.cust_no
    GROUP BY mois,customer
    ORDER BY RANK, sum(montant);
    et le résultat en pièce jointe. J'y ai passé pas mal de temps c'est pour ca que je vous demande de l'aide aujourd'hui. En effet au lieu de me mettre le rang de 1 à 12 pour chaque mois de l'année il me le met à 1 pour le premier mois puis de 12 en 12 pour chaques mois. Merci d'avance pour votre aide !
    Images attachées Images attachées  

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Citation Envoyé par Blackbart Voir le message
    La difficulté est de ne pas utiliser de "PARTITION BY".
    C'est pour l'exercice ?
    Si oui, j'aurai plutôt dit sans utiliser les fonctions analytiques.

    Voici une solution :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    With SR as
    (
      SELECT vte.mois, cli.customer as nom_client,
             sum(vte.montant) as montant_vente
        FROM vte_client_type_prod vte
             INNER JOIN clients cli
               ON vte.code_client = cli.cust_no
    GROUP BY vte.mois, cli.customer
    )
      SELECT SR1.mois, SR1.nom_client, SR1.montant_vente, count(*) as classement
        FROM SR SR1
             INNER JOIN SR SR2
               ON SR2.mois           = SR1.mois
              AND SR2.montant_vente <= SR1.montant_vente
    GROUP BY SR1.mois, SR1.nom_client, SR1.montant_vente
    ORDER BY SR1.mois asc, classement asc;

  3. #3
    Membre éclairé Avatar de Doracle
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    60
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2010
    Messages : 60
    Par défaut
    Montre nous la structure de tes deux tables s'il te plait.

    Et qu'entends t'il par "en fonction des bénéfices réalisés" exactement ?

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 3
    Par défaut
    C'est parfait, j'ai juste eu à remplacer le "inférieur ou égal" par son contraire pour avoir le classement par ordre décroissant et le résultat était celui attendu. Merci beaucoup pour votre aide efficace et rapide.
    Bonne journée

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

Discussions similaires

  1. Problème de syntaxe - elements['x'].value
    Par Equus dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 22/02/2005, 11h22
  2. [Interbase] Problème de syntaxe SQL
    Par navis84 dans le forum InterBase
    Réponses: 4
    Dernier message: 22/12/2004, 17h07
  3. Problème de syntaxe
    Par Mister_FX dans le forum ASP
    Réponses: 5
    Dernier message: 30/06/2004, 10h01
  4. Problème de syntaxe ADO ...
    Par bendev dans le forum ASP
    Réponses: 2
    Dernier message: 15/04/2004, 14h38
  5. Réponses: 2
    Dernier message: 08/03/2004, 15h10

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