La société de transport de personnes TOPCHRONO souhaite mettre en place une plateforme extranet à destination des particuliers. L’application proposera des services similaires à ceux proposés par la plateforme UBER :
Implémenter la fonction stockée tarifCommission(distance INT) AS DECIMAL qui retourne la commission pratiquée en fonction de la longueur d’un trajet :
CREATE FUNCTION tarifCommission(distance INT) RETURNS DECIMAL DETERMINISTIC BEGIN RETURN ( SELECT tarif FROM Commission WHERE distance >= min AND distance < max ) ; END$$
Implémenter la fonction stockée tarifChauffeur(numChauffeur INT, distance INT) qui retourne le tarif* pratiqué par un chauffeur en fonction de la longueur d’un trajet.
*Remarque : partie fixe + partie variable selon la distance
Coder la procédure stockée tarifChauffeurs(distance INT) qui affiche le tarif pratiqué par l’ensemble des chauffeurs en fonction de la longueur d’un trajet.
Coder la procédure stockée validerInscription(numChauffeur INT) permettant de valider(accepter) l’inscription d’un chauffeur.
Remarques :
Remarque sur le type d’une personne : « Passager », « Inscription » pour une personne qui a fait une demande d’inscription pour devenir chauffeur, « Chauffeur » pour une personne dont l’inscription demandée a été acceptée, « PassagerInscription » si c’est un passager existant qui fait sa demande d’inscription pour devenir chauffeur, « ChauffeurPassager» si une personne est chauffeur et passager
Exemple d’utilisation de WHILE pour parcourir un jeu d’enregistrements :
DECLARE curseur CURSOR FOR ( SELECT champ1, champ2 FROM table1 … ) ; -- lignes à parcourir DECLARE i AS INT ; -- compteur pour parcourir les lignes SELECT count(*) INTO @Nb FROM table1 … ; -- comptage du nombre de lignes à parcourir i = 0 WHILE i < Nb DO FETCH curseur INTO var1, var2 ; -- récupère le contenu de la ligne courante et passé à la suivante …. END WHILE ;