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 :

[Défi] sélection d'un nombre d'enregistrements aléatoires


Sujet :

Langage SQL

  1. #1
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Points : 1 775
    Points
    1 775
    Par défaut [Défi] sélection d'un nombre d'enregistrements aléatoires
    Bonjour,

    Un pote m'a soumis le défi suivant : arriver à résoudre ce dilemme en une seule requête :

    On a une table "Fichiers" contenant les champs :
    - Nom
    - Taille (en octet)
    - Envoyé (booleen)
    - etc ...
    Une entreprise souhaite envoyer régulièrement par mail des fichiers de tailles différentes, référencés dans la table "Fichiers".
    Le nombre de fichier est illimité (0 à n).
    Lorsqu'un fichier est envoyé, le champ "Envoye" est mis à Vrai pour éviter de l'envoyer à nouveau.
    L'objectif est de récuperer une liste de fichiers (aléatoires) dont le poids total (de ces fichiers cumulés) ne dépasse pas 3Mo,
    en exécutant une requete "simple".
    Le nombre de fichiers sélectionnés doit être entre 1 et 3, l'idéal étant 3 fichiers.
    Quand je dis en une seule requête, je parle de la requête qui sélectionne les fichiers dont le poids total est inférieur à 3 Mo.
    L'idéal serait de n'utiliser que des fonctions de la norme SQL mais dans un 1er temps, j'accepte toute solution.

    Merci de m'aider à trouver au moins une ébauche de solution car actuellement, j'en suis loin
    Modérateur des forums Oracle et Langage SQL
    Forum SQL : je n'interviens PAS plus de 4 fois dans une discussion car si c'est nécessaire cela prouve généralement que vous n'avez pas respecté : les règles du forum

  2. #2
    Membre averti Avatar de LhIaScZkTer
    Inscrit en
    Mai 2004
    Messages
    564
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mai 2004
    Messages : 564
    Points : 301
    Points
    301
    Par défaut
    Salut Magnus,

    à moin que je sois à la masse voici ce que tu peux faire.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT F.Nom
    FROM Fichiers F
    WHERE F.Envoyé = "TRUE" AND F.Taille <= 3mo;
    Je ne sais pas si c'est ça que tu veux, sinon je vois rien d'autre. Par contre pour la valeur TRUE de envoyé il faut vérifier la syntaxe et pour Taille aussi et ensuite il te restera plus qu'à mettre le nombre de résultat maximum que tu veux.

    Bonne journée.
    Sun Certified Java Programmer, SE 6 et Sun Certified Web Component Developer, J2EE 5

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 99
    Points : 110
    Points
    110
    Par défaut
    Bon, en réfléchissant un peu, j'ai pondu ça :
    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
    select distinct
        f1.nom as fichier1
        , &#40;case when f1.taille + f2.taille <= 3 then f2.nom else null end&#41; as fichier2
        , &#40;case when f1.taille + f2.taille + f3.taille <= 3 then f3.nom else null end&#41; as fichier3
    from
        fichier f1
        , fichier f2
        , fichier f3
    where
        f1.nom <> f2.nom
        and f2.nom <> f3.nom
        and f3.nom <> f1.nom
        and f1.envoyé = false
        and f2.envoyé = false
        and f3.envoyé = false
    Ca à l'air de marcher, dit moi si c'est bon ou pas...

Discussions similaires

  1. sélection d'un nombre d'enregistrements dans une requête
    Par dodie84 dans le forum Requêtes et SQL.
    Réponses: 9
    Dernier message: 24/04/2008, 14h59
  2. [DB] Nombre d'enregistrements d'une table
    Par Mister Nono dans le forum Bases de données
    Réponses: 26
    Dernier message: 09/05/2006, 10h51
  3. Limiter le nombre d'enregistrement
    Par BXDSPORT dans le forum Bases de données
    Réponses: 2
    Dernier message: 22/04/2004, 17h26
  4. [débutant] Limitation du nombre d'enregistrement renvoyé
    Par tmcgrady dans le forum Langage SQL
    Réponses: 4
    Dernier message: 12/11/2003, 10h41
  5. XMLGram et nombre d'enregistrements par page
    Par Sylvain Leray dans le forum XMLRAD
    Réponses: 7
    Dernier message: 26/02/2003, 13h35

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