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 :

Commande sql where


Sujet :

Langage SQL

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2010
    Messages : 5
    Points : 7
    Points
    7
    Par défaut Commande sql where
    Bonjour,
    j'ai une base de données contenant des triangles et la mesure des trois cotés de celui-ci c'est-à-dire le CoteA, Coteb coteC . Je dois récupérer tous les triangle isométrique dans ma base. Les triangle isométriques sont des triangles qui ont les 3 mêmes mesure de cotés mais sont dans un ordre différent.

    Les triangles suivant sont isométrique
    A=2 b=3 c=4
    a=3 b=2 c=4
    a=4 b=2 c=3
    a=2 b=4 c=2


    Je n'arrive pas a faire de commande select pour récupéré seulement les triangles isométrique
    Select * from Triangle where ??????

    J'essaie en faisant la somme des cotés moins l'autre (je ne sais vraiment pas comment m'y prendre) Il faudrait que je trouve un algorithme qui fonctionnerais toujours.

    Y a t-il quelqu'un de fort en math qui pourrais m'aider

  2. #2
    Membre éprouvé Avatar de Oishiiii
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2009
    Messages
    508
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Août 2009
    Messages : 508
    Points : 1 104
    Points
    1 104
    Par défaut
    Bonjour,

    Citation Envoyé par stevengren Voir le message
    Les triangles suivant sont isométrique
    A=2 b=3 c=4
    a=3 b=2 c=4
    a=4 b=2 c=3
    a=2 b=4 c=2
    Le dernier triangle ne semble pas être isométrique avec les autres.
    Citation Envoyé par stevengren Voir le message
    Les triangle isométriques sont des triangles qui ont les 3 mêmes mesure de cotés mais sont dans un ordre différent.
    S'il suffit de trouver les triangles qui ont les mêmes valeurs de coté dans l'ensemble des colonnes {A, B, C}, je pense que c'est faisable en s'inspirant des générateurs d'anagrammes.

    Par exemple en concaténant les côtés par ordre croissant pour créer une colonne de type chaîne de caractères permettant la comparaison simplement.

    A=2 b=3 c=4 donne 234
    a=3 b=2 c=4 donne 234
    a=4 b=2 c=3 donne 234
    a=2 b=4 c=2 donne 224
    etc...

    Il y a peut-être d'autre solutions.

    La réalisation en SQL dépend de votre SGBD.

  3. #3
    Membre émérite
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 874
    Points : 2 890
    Points
    2 890
    Par défaut
    Il y a une solution basique consistant à exprimer la propriété "T1 et T2 sont isométriques" en énumérant toutes les égalités possibles entre les 3 côtés. Voici un modèle de requête qui ferait ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    select ? FROM triangle t1, triangle t2
    where ( (t1.a=t2.a AND t1.b=t2.c AND t1.c=t2.b)
    OR (t1.a=t2.b AND t1.b=t2.c AND t1.c=t2.a)
    etc... répéter ça pour toutes les permutations possibles
    )
    AND NOT (t1.a=t2.a AND t1.b=t2.b and t1.c=t2.c)  -- si c'est le même triangle on ne le compte pas
    Il me semble qu'il y a 8 permutations possibles (à vérifier) à relier par des OR, si on élimine comme j'ai fait les triangles exactement identiques. La requête doit être affinée si dans la table triangle il y a des doublons (à préciser) et qu'ils doivent être compris dans le résultat parce que deux triangles identiques sont a fortiori isométriques.

Discussions similaires

  1. execution de 2 commandes sql simulanément
    Par manikou dans le forum MFC
    Réponses: 4
    Dernier message: 03/05/2005, 15h10
  2. Commande SQL / connaître taille d'1 base
    Par Thomad dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 26/04/2005, 11h38
  3. [JDBC] Commande SQL récalcitrante
    Par Dahu dans le forum JDBC
    Réponses: 7
    Dernier message: 05/04/2005, 16h03
  4. commande SQL truncate table xxx
    Par Yogy dans le forum SQL
    Réponses: 1
    Dernier message: 07/10/2004, 14h57
  5. [dBase]il y a mieux que la commande sql UPDATE ?
    Par sana72 dans le forum Autres SGBD
    Réponses: 4
    Dernier message: 12/12/2002, 11h59

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