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

SQLite Discussion :

Créer une table depuis un couple père/fils


Sujet :

SQLite

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2011
    Messages : 15
    Points : 25
    Points
    25
    Par défaut Créer une table depuis un couple père/fils
    Bonjour,

    Je dispose de 2 tables :
    Une parent avec un ID (exemple 348).
    Une fille avec un ID, un rang et l'id de son parent. Par exemple deux enregistrement : 349 (id du fils), 1 (rang du fils), 348 (id du parent) et 350, 2, 348.

    Je souhaite créer une vue qui donnerais ceci :
    ID - Rang - précédent
    349 - 1 - 0
    350 - 2 - 349

    Où précédent est l'id du "frère ainé".

    Une idée sur comment écrire la requête sachant que je souhaite faire un insert pour tous les éléments existant au moment de la création de la vue?

    Merci d'avance.

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2011
    Messages : 15
    Points : 25
    Points
    25
    Par défaut
    J'ai trouvé en fait <.<

    Au cas où la solution intéresserait quelqu'un :

    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
    CREATE TABLE `TEST_PERE` (
    	`ID` INTEGER NOT NULL,
    	PRIMARY KEY(ID)
    );
    INSERT INTO TEST_PERE (ID) VALUES (340);
    INSERT INTO TEST_PERE (ID) VALUES (350);
     
    CREATE TABLE `TEST_FILS` (
    	`ID` INTEGER NOT NULL,
    	`RANK` INTEGER NOT NULL,
    	`PARENT` INTEGER NOT NULL,
    	PRIMARY KEY(ID)
    );
    INSERT INTO TEST_FILS (ID, RANK, PARENT) VALUES (341,1,340);
    INSERT INTO TEST_FILS (ID, RANK, PARENT) VALUES (342,2,340);
    INSERT INTO TEST_FILS (ID, RANK, PARENT) VALUES (343,3,340);
     
    INSERT INTO TEST_FILS (ID, RANK, PARENT) VALUES (351,1,350);
    INSERT INTO TEST_FILS (ID, RANK, PARENT) VALUES (352,2,350);
    INSERT INTO TEST_FILS (ID, RANK, PARENT) VALUES (353,3,350);
     
    SELECT 
    currentFils.ID,
    currentFils.RANK,
    ifnull((SELECT tmpFils.ID FROM TEST_FILS tmpFils WHERE currentFils.RANK - 1 = tmpFils.RANK AND currentFils.PARENT = tmpFils.PARENT),0) AS Previous
    FROM TEST_FILS currentFils;
    ID		RANK	PREVIOUS    
    "341"	"1"		"0"
    "342"	"2"		"341"
    "343"	"3"		"342"
    "351"	"1"		"0"
    "352"	"2"		"351"
    "353"	"3"		"352"

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2003] Créer une table dans base dorsale depuis la frontale
    Par buzz73 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 21/01/2010, 11h40
  2. Créer une table en VBA ?
    Par nicburger dans le forum Access
    Réponses: 11
    Dernier message: 16/02/2005, 15h15
  3. Réponses: 17
    Dernier message: 03/12/2004, 14h33
  4. Mettre à jour une table depuis une autre
    Par rsc dans le forum SQL
    Réponses: 4
    Dernier message: 09/07/2004, 10h08
  5. Comment créer une Table dans 1 Bdd ACCESS avec Builder??
    Par makandja dans le forum C++Builder
    Réponses: 6
    Dernier message: 17/03/2004, 20h21

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