Pourcentage du nombre de ligne lu

Fermé
lightzeus Messages postés 8 Date d'inscription dimanche 11 mars 2007 Statut Membre Dernière intervention 16 septembre 2007 - 3 juil. 2007 à 12:34
 sali - 6 avril 2008 à 23:41
Bonjour ,

J'ai deux tables:
PERSONNECONNU
IDENTIFIANTPERSONNE

Avec la requete suivante

Code :
UPDATE PERSONNECONNU PC
SET CLANGUE = ( SELECT LANGUE
FROM IDENTIFIANTPERSONNE IP
WHERE PC.NOM = IP.NOM
AND PC.PRENOM = IP.PRENOM );Je veux afficher à la fin de la requetes SQL le pourcentage suivant:

1) Récupérer le nombre total de ligne de PERSONNECONNU

2) nbligne updaté/nb Total de ligne de PERSONNECONNU

ce qui me donne un resultat en pourcentage

Merci de votre aide

je suis sous oracle
A voir également:

5 réponses

Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
3 juil. 2007 à 13:54
Bonjour,

Normalement, l'update renvoit le nombre de lignes modifiées.
Ensuite, il ne te reste qu'à faire un select count(*) sur la table en question, et à diviser le premier par le deuxième.

Tu peux intégrer tout cela dans une procédure stockée si tu veux ne faire qu'un seul appel, sinon tu peux tout simplement les exécuter l'un après l'autre.

Xavier
0
lightzeus Messages postés 8 Date d'inscription dimanche 11 mars 2007 Statut Membre Dernière intervention 16 septembre 2007
3 juil. 2007 à 14:31
si je comprends ta reponse c'est bien


UPDATE PERSONNECONNU PC
SET CLANGUE = ( SELECT LANGUE
FROM IDENTIFIANTPERSONNE IP
WHERE PC.NOM = IP.NOM
AND PC.PRENOM = IP.PRENOM ) /SELECT count (*) FROM PERSONNECONNU ;


Est ce juste ?
et comment ecrire tout ça dans une procedure stockée ? Evidemment c'est une requete qui doit être execuer souvent

je suis debutante et merci pour la reponse
0
Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
3 juil. 2007 à 15:10
Je ne connais pas la syntaxe Oracle...
Mais globalement, l'idée, ce serait plutôt :

CREATE PROCEDURE update
@param1 INT,
@param2 INT
AS
BEGIN
DECLARE @nbUpdate AS INT
DECLARE @nbTot As INT
@nbUpdate := EXEC("UPDATE table SET champ1=@param1 WHERE champ2=@param2")
SELECT @nbTot=COUNT(*) FROM table

SELECT @nbUpdate/@nbTot*100
END

Voilà... Je ne suis pas trop sûr que cela fonctionne, mais c'est bien le genre de chose que j'imagine.

Xavier
0
plaize il y'a des contact en ligne qui calcule le %
0
aller reponde moi
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
plaize il y'a des contact en ligne qui calcule le %
0