A propos d'un calcul recursif

seviv2018 Messages postés 10 Date d'inscription   Statut Membre Dernière intervention   -  
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,
Je suis novice dans les bases des données. J'utilise Mysql Workbench 8.0 et j'ai créé une bdd et une table. J'aimerai effectuer un calcul recursif sauf que je ne sais pas où le faire. Puis que sur la fiche sql de la table ça indique une erreur sur la ligne de "with recursive cte"

voici mon code :
CREATE DATABASE `base`
    DEFAULT CHARACTER SET `latin1`
    DEFAULT COLLATE       `latin1_general_ci`


INSERT INTO `membre` (`id`,`identite`,`idparrain`,`telephone`,`mail`,`province`,`vdd`,`ddd`,`mdt`,`mdp`) VALUES
 ( 7, 'Georges',              2, '(+243)903452198',     'georges@yahoo.fr',     'Kongo Central',     '100$', '2018-07-19', 'Mpesa',        '2453f80431877254016377c5e36e49046aec3d80'),
 ( 8, 'Sevi Vingu',           7, '(+243)978374637',        'sevi@tozaa.net',    'Kinshasa',          '100$', '2018-07-12', 'Airtel Money', '7e1e1d11c6d0585a2fbf1d02dbdd83dbea154e80'),
 ( 9, 'Alex',                 7, '(+243)821307485',        'alex@voila.fr',     'Equateur',           '10$', '2018-07-12', 'Airtel Money', '2453f80431877254016377c5e36e49046aec3d80'),
 (10, 'Bob',                  7, '(+243)814658204',         'bob@voici.fr',     'Kasai Oriental',     '10$', '2018-07-28', 'Orange Money', '2453f80431877254016377c5e36e49046aec3d80'),
 (11, 'Annie',                7, '(+243)907070443',       'annie@caramail.com', 'Kinshasa',          '100$', '2018-07-04', 'Airtel Money', '2453f80431877254016377c5e36e49046aec3d80'),
 (12, 'Dwayne',               0, '(+243)837028746',      'dwayne@yahoo.fr',     'Equateur',           '10$', '2018-07-27', 'Airtel Money', '2453f80431877254016377c5e36e49046aec3d80'),
 (14, 'Patrick Bitafu Sabu', 27,     '00822156182', 'patrickbibu@gmail.com',    'Kinshasa',          '1000', '2018-07-22', 'Mpesa',        'ffd6c8edba114c86c1130600feac0e3eb11d5661'),
 (15, 'Mbuyi kaba',          14, '(+243)821307485',       'aaron@yahoo.fr',     'Kinshasa',          '1000', '2018-07-21', 'Mpesa',        'c60a535544b1c1fcf05fab35d7f33aa8dbcd0cb3'),
 (16, 'Korzo Barni Clavis',  15,    '+44512223489',      'lixcor@gmail.com',    'Kinshasa',          '1000', '2018-07-22', 'Mpesa',        '549a53d9060d1e3bd995a8d7a9ed451dbed90c71'),
 (17, 'Korzo Barni Vilenia', 14,    '+44512223489',  'lixcordabi@gmail.com',    'Kinshasa',          '1000', '2018-07-22', 'Airtel Money', 'fea4e1eb91d28b1544a362c085c3e9d2fb4273d1'),
 (18, 'Malik',                8,     '08114278309',       'malik@gmail.com',    'Kinshasa',           '10$', '2018-09-09', 'Mpesa',        '7e1e1d11c6d0585a2fbf1d02dbdd83dbea154e80'),
 (19, 'Hussein',             18,      '0972123456',     'hussein@gmail.com',    'Equateur',           '10$', '2018-09-10', 'Airtel Money', '7e1e1d11c6d0585a2fbf1d02dbdd83dbea154e80'),
 (20, 'Hassan',              18,      '0986543456',      'hassan@gmail.com',    'Province Orientale', '10$', '2018-09-11', 'Airtel Money', '7e1e1d11c6d0585a2fbf1d02dbdd83dbea154e80'),
 (21, 'Ahmed',               19,      '0825647389',       'ahmed@gmail.com',    'Nord Kivu',          '10$', '2018-09-12', 'Orange Money', '7e1e1d11c6d0585a2fbf1d02dbdd83dbea154e80'),
 (22, 'Andrew',              19,      '0374976372',      'andrew@gmail.com',    'Bandundu',           '10$', '2018-09-05', 'Airtel Money', '7e1e1d11c6d0585a2fbf1d02dbdd83dbea154e80'),
 (23, 'Talent',              18,      '0938403647',      'talent@gmail.com',    'Kongo Central',      '10$', '2018-09-05', 'Airtel Money', '7e1e1d11c6d0585a2fbf1d02dbdd83dbea154e80'),
 (24, 'Pedro',               19,     '03849393847',       'pedro@gmail.com',    'Kongo Central',      '10$', '2018-09-06', 'Mpesa',        '7e1e1d11c6d0585a2fbf1d02dbdd83dbea154e80'),
 (25, 'Vingu',               18,           '78909',       'vingu@gmail.com',    'Bandundu',           '10$', '2018-09-20', 'Airtel Money', '7e1e1d11c6d0585a2fbf1d02dbdd83dbea154e80'),
 (26, 'ngoma',               18,           '93038',       'ngoma@gmail.com',    'Kasai Occidental',   '10$', '2018-09-21', 'Orange Money', '7e1e1d11c6d0585a2fbf1d02dbdd83dbea154e80'),
 (27, 'Lea',                 18,            '2930',         'lea@gmail.com',    'Province Orientale', '10$', '2018-09-20', 'Orange Money', '7e1e1d11c6d0585a2fbf1d02dbdd83dbea154e80')


Sauf que je ne sais pas où placer le code de la recursivité. Le code suivant :

with recursive cte (`id`, `idparrain`, `nbre`) as
  (  select  id,
             idparrain,
             0 as nbre
       from  `membre`
  union all
     select  m.id,
             m.idparrain,
             1 as nbre
       from  `membre` as m
 inner join  cte
         on  m.id=cte.idparrain
  )
     select  id, sum(nbre) as qte
       from  cte
   group by  id
A voir également:

1 réponse

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Bonjour
En sql server ou en mysql ?
0
seviv2018 Messages postés 10 Date d'inscription   Statut Membre Dernière intervention  
 
Disons que j'utilise mysql workbench 8.0
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
mysql workbench est un logiciel permettant de manipuler des bases de données;
Bien que son nom contienne "mysql" .. il permet également de manipuler des bases sqlserver.
Sachant que tu as posté dans le forum sqlserver... le doute est possible.... et ta réponse ne me rassure pas sur tes connaissances dans ce domaine.
Donc avant que je ne cherche une réponse à ton souci... j'aimerai savoir si je dois déplacer ta question dans le bon forum....
0
seviv2018 Messages postés 10 Date d'inscription   Statut Membre Dernière intervention   > jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention  
 
Merci Jordan.
Bonjour,
Oui, vous pouvez le déplacer. Merci.
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752 > seviv2018 Messages postés 10 Date d'inscription   Statut Membre Dernière intervention  
 
c'est déjà fait
0
seviv2018 Messages postés 10 Date d'inscription   Statut Membre Dernière intervention  
 
Merci Jordan.
Bonjour,
Oui, vous pouvez le déplacer. Merci.
0