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 :

Plus de café en une journée


Sujet :

SQL Oracle

  1. #1
    Membre du Club
    Inscrit en
    Octobre 2006
    Messages
    277
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 277
    Points : 56
    Points
    56
    Par défaut Plus de café en une journée
    Je veux un Select pour trouver celui qui a bu le plus de café en une journée.

    Je ne trouve pas...

    Merci

  2. #2
    Modérateur
    Avatar de Chtulus
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2008
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 3 094
    Points : 8 678
    Points
    8 678
    Par défaut
    Bonsoir,

    Et bien, pas besoin de requête... C'est celui qui est le plus énervé...

    Tu aurais plus d'infos, sur tes tables, quelles sont tes colonnes, tu as commencé une requête ?

    « Je ne cherche pas à connaître les réponses, je cherche à comprendre les questions. »
    - Confucius -

    Les meilleurs cours, tutoriels et Docs sur les SGBD et le SQL
    Tous les cours Office
    Solutions d'Entreprise



  3. #3
    Membre du Club
    Inscrit en
    Octobre 2006
    Messages
    277
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 277
    Points : 56
    Points
    56
    Par défaut
    rien commencé. J'ai fait plein de requête auparavant.

    Voici la table

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    Programmeur, Jour, NbTasses
    Gilbert Mon 1
    Wally Mon 2
    Edgar Tue 8
    Wally Tue 2
    Eugene Tue 3
    Josephine Wed 2
    Eugene Thu 3
    Gilbert Thu 1
    Clarence Fri 9
    Edgar Fri 3
    Josephine Fri 4
    CriCri Mon 4
    Alain Mon 8
    Anne Tue 5
    François Mon 2
    Phil Mon 1
    Véro Mon 5
    Danielle Mon 4
    Véro Tue 6
    CriCri Tue 3
    Danielle Tue 7
    Fred Wed 4
    Hidde Tue 3
    Fred Mon 2
    Alain Tue 9
    Alain Wen 10

  4. #4
    Membre du Club
    Inscrit en
    Octobre 2006
    Messages
    277
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 277
    Points : 56
    Points
    56
    Par défaut
    La réponse devrait être

    Alain -*> 10 café

  5. #5
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 283
    Points : 11 742
    Points
    11 742
    Par défaut
    Quel est ton SGBD ?
    Antoun
    Expert Tableau, Essbase, BO, SQL

    La bible d'Essbase, 2ème édition

  6. #6
    Membre du Club
    Inscrit en
    Octobre 2006
    Messages
    277
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 277
    Points : 56
    Points
    56
    Par défaut
    Oracle

  7. #7
    Membre expérimenté Avatar de Yanika_bzh
    Homme Profil pro
    Responsable Applicatif et R&D
    Inscrit en
    Février 2006
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Responsable Applicatif et R&D
    Secteur : Finance

    Informations forums :
    Inscription : Février 2006
    Messages : 1 144
    Points : 1 738
    Points
    1 738
    Par défaut
    Vous devriez vous en sortir avec un sum, group by, having et max normalement.

    Bon courage
    Dans la connaissance du monde, ceux qui ne savent rien en savent toujours autant que ceux qui n'en savent pas plus qu'eux. (Pierre Dac)

  8. #8
    Membre émérite
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 758
    Points : 2 995
    Points
    2 995
    Par défaut
    Bizarre comme exercice. Serait-ce un devoir scolaire ?

    La requête devrait être celle-ci je pense (non testée)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT Programmeur, Jour, SUM(NbTasse) As Addiction
    FROM MaTable
    GROUP By Programmeur, Jour
    ORDER BY SUM(NbTasse) DESC
    Christophe (cavo789)
    Mon blog, on y parle Docker, PHP, WSL, Markdown et plein d'autres choses : https://www.avonture.be

  9. #9
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 283
    Points : 11 742
    Points
    11 742
    Par défaut
    Pour limiter à un seul programmeur, sous Oracle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    SELECT Programmeur, Jour, Addiction
    FROM (
    SELECT Programmeur, Jour, SUM(NbTasse) As Addiction
    FROM MaTable
    GROUP By Programmeur, Jour
    ORDER BY SUM(NbTasse) DESC
    ) tmp
    WHERE ROWNUM <= 1 ;
    Ou alors il faut utiliser une clause de fenêtrage, mais je ne connais pas trop.
    Antoun
    Expert Tableau, Essbase, BO, SQL

    La bible d'Essbase, 2ème édition

  10. #10
    Membre émérite
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 758
    Points : 2 995
    Points
    2 995
    Par défaut
    Effectivement ma requête telle que donne tous les programmeurs par ordre décroissant d'addiction au café. Il faudrait encore faire un TOP 1.
    Christophe (cavo789)
    Mon blog, on y parle Docker, PHP, WSL, Markdown et plein d'autres choses : https://www.avonture.be

  11. #11
    Membre à l'essai
    Inscrit en
    Octobre 2007
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 17
    Points : 21
    Points
    21
    Par défaut
    Bonjour à tous,

    La réponse devrait être

    Alain -*> 10 café
    Comme le résultat est fourni par programmeur et par jour:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Select Programmeur,'-*>' as SyntaxeUne,NbTasses,'café' as SyntaxeDeux  
    from TableCafetiere
    where NbTasses in (select MAX(NbTasses) from TableCafetiere)
    ;
    Mais Pourquoi café est-il au singulier, est-ce pour forcer la réduction de consommation?

  12. #12
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 283
    Points : 11 742
    Points
    11 742
    Par défaut
    Citation Envoyé par cavo789 Voir le message
    Effectivement ma requête telle que donne tous les programmeurs par ordre décroissant d'addiction au café. Il faudrait encore faire un TOP 1.
    Sauf que TOP 1 n'existe que sous SQL Server, SyBase et Access. J'ai donc donné l'équivalent sous Oracle.

    Comme on sort du SQL normalisé, je déplace cette discussion dans le forum Oracle.
    Antoun
    Expert Tableau, Essbase, BO, SQL

    La bible d'Essbase, 2ème édition

  13. #13
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 283
    Points : 11 742
    Points
    11 742
    Par défaut
    En fait, les requêtes ci-dessus ne sont pas bonnes, car il faut agréger les cafés bus durant les différentes journées.

    Ça donne donc, version à la cavo789 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    SELECT Programmeur, Addiction
    FROM (
      SELECT Programmeur, SUM(NbTasse) As Addiction
      FROM MaTable
      GROUP By Programmeur
      ORDER BY SUM(NbTasse) DESC
    ) tmp
    WHERE ROWNUM <= 1
    Version à la code barre invalide! :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Select Programmeur,'-*>' as SyntaxeUne, SUM(NbTasses) As TotalTasses, 'cafés' as SyntaxeDeux  
    from TableCafetiere
    HAVING NbTasses >= ALL (
      select SUM(NbTasses) 
      from TableCafetiere 
      GROUP BY Programmeur
    )
    ;
    Antoun
    Expert Tableau, Essbase, BO, SQL

    La bible d'Essbase, 2ème édition

  14. #14
    Membre du Club
    Inscrit en
    Octobre 2006
    Messages
    277
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 277
    Points : 56
    Points
    56
    Par défaut
    J'ai jamais utilisé ceci en Oracle

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ) tmp
    WHERE ROWNUM <= 1

  15. #15
    Membre confirmé
    Avatar de argoet
    Inscrit en
    Mai 2002
    Messages
    582
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 582
    Points : 562
    Points
    562
    Par défaut
    Citation Envoyé par punisher999 Voir le message
    J'ai jamais utilisé ceci en Oracle

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ) tmp
    WHERE ROWNUM <= 1
    he bien il faut un début à tout
    Signé : Capitaine Jean-Luc Picard

  16. #16
    Membre du Club
    Inscrit en
    Octobre 2006
    Messages
    277
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 277
    Points : 56
    Points
    56
    Par défaut
    Je veux mettre le tout dans un ResultSet rs = stmt
    .executeQuery()

    Je crois qu'il faut que je mettre des guillemets à d'autres endroits

    Quelqu'un sait comment ?

  17. #17
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 283
    Points : 11 742
    Points
    11 742
    Par défaut
    Citation Envoyé par punisher999 Voir le message
    Je veux mettre le tout dans un ResultSet rs = stmt
    .executeQuery()
    De quel langage s'agit-il ? du VB ?
    Antoun
    Expert Tableau, Essbase, BO, SQL

    La bible d'Essbase, 2ème édition

  18. #18
    Membre du Club
    Inscrit en
    Octobre 2006
    Messages
    277
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 277
    Points : 56
    Points
    56
    Par défaut
    java.. désolé

  19. #19
    Membre chevronné
    Avatar de CheryBen
    Inscrit en
    Mai 2005
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 599
    Points : 2 197
    Points
    2 197
    Par défaut
    Ici c'est le forum SQL, maintenant que tu as obtenu des réponses concernant la formulation de ta requête, tu dois t'orienter vers le forum JDBC pour savoir comment traiter le résultat.

    Je me permets de te redonner le lien de la FAQ JDBC où tu devrais trouver les réponses à tes questions sur les PreparedStatement et les ResultSet. Si toutefois ce n'était pas le cas, tu connais l'adresse du forum JDBC

  20. #20
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 283
    Points : 11 742
    Points
    11 742
    Par défaut
    on peut considérer la partie SQL comme ?
    Antoun
    Expert Tableau, Essbase, BO, SQL

    La bible d'Essbase, 2ème édition

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Au secours. Plus qu'une journée pour donner mon préavis
    Par dhomat dans le forum Démission
    Réponses: 4
    Dernier message: 01/02/2008, 12h03
  2. vba-Excel-Plus grande valeur d'une colonne
    Par VBBBA dans le forum Macros et VBA Excel
    Réponses: 33
    Dernier message: 08/08/2006, 10h50
  3. Réponses: 8
    Dernier message: 01/02/2006, 17h28
  4. Déconnection au bout d'une journée
    Par Progs dans le forum Bases de données
    Réponses: 4
    Dernier message: 21/09/2005, 07h37
  5. Algo le plus rapide pour trouver une répétition ?
    Par AsmCode dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 28/07/2005, 00h26

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