A propos d'un calcul recursif

seviv2018 Messages postés 12 Statut Membre -  
jordane45 Messages postés 30651 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',     '[email protected]',     'Kongo Central',     '100$', '2018-07-19', 'Mpesa',        '2453f80431877254016377c5e36e49046aec3d80'),
 ( 8, 'Sevi Vingu',           7, '(+243)978374637',        '[email protected]',    'Kinshasa',          '100$', '2018-07-12', 'Airtel Money', '7e1e1d11c6d0585a2fbf1d02dbdd83dbea154e80'),
 ( 9, 'Alex',                 7, '(+243)821307485',        '[email protected]',     'Equateur',           '10$', '2018-07-12', 'Airtel Money', '2453f80431877254016377c5e36e49046aec3d80'),
 (10, 'Bob',                  7, '(+243)814658204',         '[email protected]',     'Kasai Oriental',     '10$', '2018-07-28', 'Orange Money', '2453f80431877254016377c5e36e49046aec3d80'),
 (11, 'Annie',                7, '(+243)907070443',       '[email protected]', 'Kinshasa',          '100$', '2018-07-04', 'Airtel Money', '2453f80431877254016377c5e36e49046aec3d80'),
 (12, 'Dwayne',               0, '(+243)837028746',      '[email protected]',     'Equateur',           '10$', '2018-07-27', 'Airtel Money', '2453f80431877254016377c5e36e49046aec3d80'),
 (14, 'Patrick Bitafu Sabu', 27,     '00822156182', '[email protected]',    'Kinshasa',          '1000', '2018-07-22', 'Mpesa',        'ffd6c8edba114c86c1130600feac0e3eb11d5661'),
 (15, 'Mbuyi kaba',          14, '(+243)821307485',       '[email protected]',     'Kinshasa',          '1000', '2018-07-21', 'Mpesa',        'c60a535544b1c1fcf05fab35d7f33aa8dbcd0cb3'),
 (16, 'Korzo Barni Clavis',  15,    '+44512223489',      '[email protected]',    'Kinshasa',          '1000', '2018-07-22', 'Mpesa',        '549a53d9060d1e3bd995a8d7a9ed451dbed90c71'),
 (17, 'Korzo Barni Vilenia', 14,    '+44512223489',  '[email protected]',    'Kinshasa',          '1000', '2018-07-22', 'Airtel Money', 'fea4e1eb91d28b1544a362c085c3e9d2fb4273d1'),
 (18, 'Malik',                8,     '08114278309',       '[email protected]',    'Kinshasa',           '10$', '2018-09-09', 'Mpesa',        '7e1e1d11c6d0585a2fbf1d02dbdd83dbea154e80'),
 (19, 'Hussein',             18,      '0972123456',     '[email protected]',    'Equateur',           '10$', '2018-09-10', 'Airtel Money', '7e1e1d11c6d0585a2fbf1d02dbdd83dbea154e80'),
 (20, 'Hassan',              18,      '0986543456',      '[email protected]',    'Province Orientale', '10$', '2018-09-11', 'Airtel Money', '7e1e1d11c6d0585a2fbf1d02dbdd83dbea154e80'),
 (21, 'Ahmed',               19,      '0825647389',       '[email protected]',    'Nord Kivu',          '10$', '2018-09-12', 'Orange Money', '7e1e1d11c6d0585a2fbf1d02dbdd83dbea154e80'),
 (22, 'Andrew',              19,      '0374976372',      '[email protected]',    'Bandundu',           '10$', '2018-09-05', 'Airtel Money', '7e1e1d11c6d0585a2fbf1d02dbdd83dbea154e80'),
 (23, 'Talent',              18,      '0938403647',      '[email protected]',    'Kongo Central',      '10$', '2018-09-05', 'Airtel Money', '7e1e1d11c6d0585a2fbf1d02dbdd83dbea154e80'),
 (24, 'Pedro',               19,     '03849393847',       '[email protected]',    'Kongo Central',      '10$', '2018-09-06', 'Mpesa',        '7e1e1d11c6d0585a2fbf1d02dbdd83dbea154e80'),
 (25, 'Vingu',               18,           '78909',       '[email protected]',    'Bandundu',           '10$', '2018-09-20', 'Airtel Money', '7e1e1d11c6d0585a2fbf1d02dbdd83dbea154e80'),
 (26, 'ngoma',               18,           '93038',       '[email protected]',    'Kasai Occidental',   '10$', '2018-09-21', 'Orange Money', '7e1e1d11c6d0585a2fbf1d02dbdd83dbea154e80'),
 (27, 'Lea',                 18,            '2930',         '[email protected]',    '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 30651 Date d'inscription   Statut Modérateur Dernière intervention   4 829
 
Bonjour
En sql server ou en mysql ?
0
seviv2018 Messages postés 12 Statut Membre
 
Disons que j'utilise mysql workbench 8.0
0
jordane45 Messages postés 30651 Date d'inscription   Statut Modérateur Dernière intervention   4 829
 
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 12 Statut Membre > jordane45 Messages postés 30651 Date d'inscription   Statut Modérateur Dernière intervention  
 
Merci Jordan.
Bonjour,
Oui, vous pouvez le déplacer. Merci.
0
jordane45 Messages postés 30651 Date d'inscription   Statut Modérateur Dernière intervention   4 829 > seviv2018 Messages postés 12 Statut Membre
 
c'est déjà fait
0
seviv2018 Messages postés 12 Statut Membre
 
Merci Jordan.
Bonjour,
Oui, vous pouvez le déplacer. Merci.
0