A voir également:
- Problème de decimal en sql
- Convertir heure en décimal excel ✓ - Forum Excel
- Sql lister les tables ✓ - Forum Programmation
- Excel: convertir minutes en décimales - Forum Excel
- Blob sql ✓ - Forum Webmastering
- Sql server recovery - Télécharger - Gestion de données
4 réponses
La solution etait tout simplement de declarer les variables en float
et le tour etait joué
salutations
[Resolu]
et le tour etait joué
salutations
[Resolu]
Jean-François Pillou
Messages postés
18301
Date d'inscription
lundi 15 février 1999
Statut
Webmaster
Dernière intervention
16 février 2023
63 274
29 mai 2007 à 11:37
29 mai 2007 à 11:37
Forcément... si tu utilise un champ 'INT'...
Il faut utiliser un champ DECIMAL ou FLOAT
Il faut utiliser un champ DECIMAL ou FLOAT
Bonjour et merci pour ta reponse rapide mais....
désolé mais c'est une des première chose que j'ai testé mais sans resultat different.
Pour 0.666% il me renvoit toujours 0
j'ai pourtant remplacer le int par du decimal dans les variables nbresrvation,nbplace et dispo.
je ne comprend vraiment pas ce qui cloche
Merci vraiment de m'aider
Stéphaen
désolé mais c'est une des première chose que j'ai testé mais sans resultat different.
Pour 0.666% il me renvoit toujours 0
j'ai pourtant remplacer le int par du decimal dans les variables nbresrvation,nbplace et dispo.
je ne comprend vraiment pas ce qui cloche
Merci vraiment de m'aider
Stéphaen
Pour mieux comprendre mon problème, je vous retourne mon code sql modifié :
---------------------------------------------------------------------
create procedure proc7_avions
@destination varchar(25)='%'
as
declare @numavion varchar (10),@destinat varchar(25),@nbreservation decimal,
@nbplace decimal, @dispo decimal, @message varchar (80)
declare proc7_curseur CURSOR for
select v.noavion, r.destinat,nbreserv=count(*)
from reservations r, vols v
where (r.novol=v.novol) and (r.destinat like @destination)
group by v.noavion,r.destinat
open proc7_curseur
fetch next from proc7_curseur
into @numavion, @destinat, @nbreservation
while @@fetch_status=0
begin
set @nbplace =(select nbpassag from avions a, type_avions t
where (a.type=t.type) and (noavion=@numavion))
set @dispo=(@nbreservation*100 /@nbplace)
print ''
print '***********************************'
print ''
set @message='La destination '+@destinat+' effectué par l''avion '+@numavion+
' contient '+str(floor(@dispo),3,2)+'% d''occupation'
print @message
fetch next from proc7_curseur
into @numavion, @destinat,@nbreservation
end
close proc7_curseur
deallocate proc7_curseur
-----------------------------------------------------------------
et la reponse rendu :
***********************************
La destination BRUXELLES effectué par l'avion X01 contient 1.0% d'occupation
***********************************
La destination MARSEILLE effectué par l'avion X01 contient 0.0% d'occupation
***********************************
La destination NEW-YORK effectué par l'avion X01 contient 0.0% d'occupation
***********************************
La destination OSLO effectué par l'avion X02 contient 0.0% d'occupation
-----------------------------------------------------------------
Et surtout les données exemple : nbplace (bruxelle (1)) 330 et nbreservation (idem) 2
Ce qui devrait donner 0.606060....
---------------------------------------------------------------------
create procedure proc7_avions
@destination varchar(25)='%'
as
declare @numavion varchar (10),@destinat varchar(25),@nbreservation decimal,
@nbplace decimal, @dispo decimal, @message varchar (80)
declare proc7_curseur CURSOR for
select v.noavion, r.destinat,nbreserv=count(*)
from reservations r, vols v
where (r.novol=v.novol) and (r.destinat like @destination)
group by v.noavion,r.destinat
open proc7_curseur
fetch next from proc7_curseur
into @numavion, @destinat, @nbreservation
while @@fetch_status=0
begin
set @nbplace =(select nbpassag from avions a, type_avions t
where (a.type=t.type) and (noavion=@numavion))
set @dispo=(@nbreservation*100 /@nbplace)
print ''
print '***********************************'
print ''
set @message='La destination '+@destinat+' effectué par l''avion '+@numavion+
' contient '+str(floor(@dispo),3,2)+'% d''occupation'
print @message
fetch next from proc7_curseur
into @numavion, @destinat,@nbreservation
end
close proc7_curseur
deallocate proc7_curseur
-----------------------------------------------------------------
et la reponse rendu :
***********************************
La destination BRUXELLES effectué par l'avion X01 contient 1.0% d'occupation
***********************************
La destination MARSEILLE effectué par l'avion X01 contient 0.0% d'occupation
***********************************
La destination NEW-YORK effectué par l'avion X01 contient 0.0% d'occupation
***********************************
La destination OSLO effectué par l'avion X02 contient 0.0% d'occupation
-----------------------------------------------------------------
Et surtout les données exemple : nbplace (bruxelle (1)) 330 et nbreservation (idem) 2
Ce qui devrait donner 0.606060....