Pourcentage du nombre de ligne lu
lightzeus
Messages postés
8
Statut
Membre
-
sali -
sali -
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
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:
- Pourcentage du nombre de ligne lu
- Partage de photos en ligne - Guide
- Nombre de jours entre deux dates excel - Guide
- Formulaire en ligne de meta - Guide
- Mètre en ligne - Guide
- Excel camembert pourcentage - Guide
5 réponses
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
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
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
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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