Requete SQL
Répondre à la discussion
Affichage des résultats 1 à 5 sur 5

Requete SQL



  1. #1
    Alban_

    Requete SQL


    ------

    Bonjour,

    je suis débutant sur les bases de données. J'utilise sqliteman. J'ai une base de donnée dont le schéma relationnel est :
    triangle(idt:integer, ab:integer, ac:integer, bc:integer)

    Je veux la plus petite valeur des produits AB:AC:BC, pour les triangles (ABC) de périmètre supérieur ou égal à 100, puis les longueurs correspondantes à ce (ou ces) min. Je tape :
    SELECT idt,min(ab*ac*bc) FROM triangles WHERE ab+ac+bc>=100

    Dans mon idée, cette requete va aller chercher dans ma base de données les triangles dont le périmètre est >=100. Parmi ceux-ci, il choisit celui (ou ceux) dont le produit des longueurs est minimal et me renvoie son (ou ses numéros). Si je fais cela, il me renvoie un numéro de triangle et il me dit que le produit des longueurs vaut 99. Pour vérifier, j'ai tapé :
    SELECT idt,ab,ac,bc,min(ab*ac*bc) FROM triangles WHERE ab+ac+bc>=100.
    Il me renvoie le même numéro de triangle, avec un produit des longueurs qui vaut toujours 99. Mais ab,ac,bc = 94, 26, 25, ce qui ne colle pas.

    Qu'est ce qui ne va pas dans ma requete ?

    -----

  2. #2
    Bluedeep

    Re : Requete SQL

    Bonjour

    Citation Envoyé par Alban_ Voir le message
    Qu'est ce qui ne va pas dans ma requete ?
    En sql standard cette requête ne devrait même pas passer; le fait qu'elle passe permet de dire que le calcul est fait n'importe comment.

    Essaye :
    Code:
    SELECT idt,min(ab*ac*bc) 
     FROM triangles 
      WHERE ab+ac+bc>=100 
       GROUP BY IDT

  3. #3
    Alban_

    Re : Requete SQL

    Merci de ta réponse, mais cela ne fonctionne pas mieux : j'ai mis l'indentation mais à la main dans sqliteman, je suppose que ce n'est pas ce qu'il faut faire et je ne comprends pas l'intérêt de grouper par idt puisque c'est ce qu'il fait à priori non ?

  4. #4
    Bluedeep

    Re : Requete SQL

    Citation Envoyé par Alban_ Voir le message
    Merci de ta réponse, mais cela ne fonctionne pas mieux : j'ai mis l'indentation mais à la main dans sqliteman, je suppose que ce n'est pas ce qu'il faut faire et je ne comprends pas l'intérêt de grouper par idt puisque c'est ce qu'il fait à priori non ?
    Sauf erreur de ma part, selon la norme SQL, il ne devrait pas admettre l'utilisation d'une fonction d'agrégat sur le select sans un group by.

  5. A voir en vidéo sur Futura
  6. #5
    Bluedeep

    Re : Requete SQL

    Poste ici :

    - le DDL de création de la table
    - le script d'insertion des données

    Merci.

Discussions similaires

  1. C++/ Rêquete SQL QT
    Par hacki754 dans le forum Programmation et langages, Algorithmique
    Réponses: 2
    Dernier message: 07/04/2015, 16h50
  2. sql requete
    Par aminaa dans le forum Programmation et langages, Algorithmique
    Réponses: 1
    Dernier message: 13/02/2013, 18h28
  3. Requete SQL
    Par invitef84ed095 dans le forum Programmation et langages, Algorithmique
    Réponses: 5
    Dernier message: 26/12/2010, 11h57
  4. [Divers] requete
    Par enebre dans le forum Dépannage
    Réponses: 0
    Dernier message: 25/01/2008, 20h58
  5. requête SQL
    Par inviteafd8fc22 dans le forum Logiciel - Software - Open Source
    Réponses: 3
    Dernier message: 07/01/2008, 16h02