A propos d'un calcul recursif

Fermé
seviv2018 Messages postés 10 Date d'inscription mercredi 29 août 2018 Statut Membre Dernière intervention 16 octobre 2018 - 11 oct. 2018 à 14:04
jordane45 Messages postés 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024 - 16 oct. 2018 à 11:45
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 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024 4 717
11 oct. 2018 à 16:06
Bonjour
En sql server ou en mysql ?
0
seviv2018 Messages postés 10 Date d'inscription mercredi 29 août 2018 Statut Membre Dernière intervention 16 octobre 2018
12 oct. 2018 à 15:38
Disons que j'utilise mysql workbench 8.0
0
jordane45 Messages postés 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024 4 717
12 oct. 2018 à 15:44
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 mercredi 29 août 2018 Statut Membre Dernière intervention 16 octobre 2018 > jordane45 Messages postés 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024
16 oct. 2018 à 11:20
Merci Jordan.
Bonjour,
Oui, vous pouvez le déplacer. Merci.
0
jordane45 Messages postés 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024 4 717 > seviv2018 Messages postés 10 Date d'inscription mercredi 29 août 2018 Statut Membre Dernière intervention 16 octobre 2018
16 oct. 2018 à 11:45
c'est déjà fait
0
seviv2018 Messages postés 10 Date d'inscription mercredi 29 août 2018 Statut Membre Dernière intervention 16 octobre 2018
13 oct. 2018 à 16:40
Merci Jordan.
Bonjour,
Oui, vous pouvez le déplacer. Merci.
0