Enoncè;
Dans les
exercices suivant, on travaille sur la base de données
«GestionCommande »:
Exercice 1 :
Créer une procédure stockée qui affiche les clients dont la quantité
commande est supérieur à 75 et les factures sont réalisées entre 2003 et 2004
Corrigé :
create proc E;1
as
select * from Client where
exists
(select * from Commande
where
IdClient=Client.IdClient and Quntité>75 and exists
(select * from Facture
where datefacture between
'01/01/2003'and '31/12/2004'and NumCommande=Commande.NumCommande ))
exec E;1
Exercice 2 :
Créer une procédure stockée qui retourne la somme des prix à payer
par tous les clients en utilisant un paramètre de sortie.
Corrigé :
create proc E;2
@somme money output
as
select @somme = sum(PrixTotal)
from Commande
if @somme < 1000
print 'La société va
fermer ses portes.'
else
---SELECT 'La
société a réalisé ' + convert (varchar(20), @somme)+' F' as PrixTotal
select @somme as
SommeRéalisé
go
declare @P money
Exercice3 :
Créer une procédure qui affiche les noms et les prénoms des clients
dont le nom commence par ‘Al’ en utilisant un cursor qui permet d’extraire
les lignes ligne par ligne
Corrigé :
create proc ProcCursor
as
DECLARE Cur CURSOR FOR
SELECT Nom, Prénom FROM
Client where Nom like 'Al%'
OPEN Cur
FETCH NEXT FROM Cur
WHILE @@FETCH_STATUS = 0
BEGIN
insert into client
values(2056,'toto','titi','Mars')
FETCH NEXT FROM Cur
END
CLOSE Cur
drop proc ProcCursor
exec ProcCursor
Exercice 4 :
Créer une procédure qui exécute la procédure précédente
Corrigé :
create proc ProcAppelante
@P1 varchar(10)
as
exec @P1
---------
exec ProcAppelante 'ProcCursor'
Exercice 5 :
Créer la procédure stockée qui compte le nombre de commandes d’un
client et affiche le résultat
Corrigé :
create proc prc
(@id int,
@var int output)
as
select @var =
count(NumCommande)
from
Commande where IdClient=@id
group by IdClient
drop proc prc
declare @P int
Select @p as NbreCommandes
|
0 commentaires:
Enregistrer un commentaire