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 :

[SQLite] Requete SQL


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juillet 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Âge : 52

    Informations forums :
    Inscription : Juillet 2007
    Messages : 41
    Par défaut [SQLite] Requete SQL
    Bonjour à tous,

    Je cherche à faire une requête SQL sous SQLite.
    Une petite explication en texte :
    J'ai plusieurs tables (physiques) ayant des nombres de places possibles différentes (ex : table A 10 places, table B 8 places, table C 9 places...)
    J'ai des joueurs positionnés sur ces différentes tables.

    Je cherche à distribuer ces joueurs équitablement sur ces tables, pour ce faire je dois connaitre :
    - le nom ou l'id de la Table la plus remplie ?
    - le nom ou l'id de la Table la moins remplie ?
    - le nombre de joueurs sur la table X ?

    Voici mes Tables (de données ce coup ci ) :

    Joueurs :
    --------------
    Id_Joueurs
    Nom_Joueurs
    Prénom_Joueurs

    Tables :
    --------------
    Id_Tables
    Nom_Tables
    NbrePlaces_Tables

    Positions :
    --------------
    Id_Positions
    Id_Tables
    Numero_Positions
    Id_Joueurs
    Si vous trouver que ma base est mal conçue n'hésites surtout pas à critiquer et me dire ce que je dois changer.

  2. #2
    Membre averti
    Inscrit en
    Juillet 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Âge : 52

    Informations forums :
    Inscription : Juillet 2007
    Messages : 41
    Par défaut
    J'ai essayé ceci :
    Pour la table TABLES, j'ai du la renommer "Board"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    CREATE TABLE Board (
      id_Board       INT     NOT NULL     PRIMARY KEY,
      nom_Board      VARCHAR(50)     UNIQUE,
      nbplaces_Board INT)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    CREATE TABLE Joueurs (
      id_Joueurs     INT    NOT NULL    PRIMARY KEY,
      nom_Joueurs    VARCHAR(50),
      prenom_Joueurs VARCHAR(50),
      alias          VARCHAR(50)    UNIQUE)
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    CREATE TABLE Positions (
      id_Positions INT NOT NULL PRIMARY KEY,
      idBoard_Positions INT FOREIGN KEY REFERENCES Board(id_Board),
      Num_Positions INT,
      idJoueurs_Positions INT FOREIGN KEY REFERENCES Joueurs(id_Joueurs))
    Mais j'ai cette erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    *** Une exception a été lancée : SQLite error
    near "FOREIGN": syntax error ***

  3. #3
    Membre émérite
    Profil pro
    Inscrit en
    Août 2008
    Messages
    861
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 861
    Par défaut
    Citation Envoyé par Squale76 Voir le message
    Mais j'ai cette erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    *** Une exception a été lancée : SQLite error
    near "FOREIGN": syntax error ***
    Je ne l'ai jamais utilisé, mais en faisant une recherche rapide, il semblerait qu'SQL Lite ne gère pas les contraintes de clé étrangère, et qu'il faut passer par des triggers.

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 001
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 22 001
    Billets dans le blog
    6
    Par défaut
    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
    -- pour les tables plus ou moins remplies et toutes les autres
    WITH
    T1 AS
    (SELECT Id_Tables, COUNT(*) AS N
     FROM   Positions),
    T2 AS
    (SELECT MAX(N) AS MX, MIN(N) AS MN
     FROM   T1)
    SELECT  T1.Id_Table, N AS NOMBRE, 'PLUS' AS Remplie 
    FROM    T1 
            INNER JOIN T2
                  ON T1.N = T2.MX
    UNION ALL
    SELECT  T1.Id_Table, N, 'MOINS' AS Remplie 
    FROM    T1 
            INNER JOIN T2
                  ON T1.N = T2.MN
    UNION ALL
    SELECT  T1.Id_Table, N, NULL AS Remplie 
    FROM    T1 
    WHERE   N NOT IN (SELECT MX
                      FROM   T2
                      UNION  ALL
                      SELECT MN
                      FROM   T2) 
    ORDER   BY NOMBRE DESC
    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

Discussions similaires

  1. Problème Requete SQL et QuickReport
    Par arnaud_verlaine dans le forum C++Builder
    Réponses: 7
    Dernier message: 07/01/2004, 09h31
  2. Prob de requete sql et variable
    Par agent-zaizai dans le forum ASP
    Réponses: 11
    Dernier message: 21/10/2003, 16h54
  3. requete sql
    Par autumn319 dans le forum ASP
    Réponses: 22
    Dernier message: 10/09/2003, 16h46
  4. Paramètre requete SQL (ADOQuery)
    Par GaL dans le forum C++Builder
    Réponses: 3
    Dernier message: 30/07/2002, 11h24
  5. Resultat requete SQL
    Par PierDIDI dans le forum Bases de données
    Réponses: 2
    Dernier message: 23/07/2002, 13h43

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