begin process at 2010 02 10 08:52:10
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive SQL

 > 

Archives

 > 

Problème avec une requête

 > 

deux chiffre aprèla virgule


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

deux chiffre aprèla virgule

vendredi 18 février 2005 à 07:58:26 | deux chiffre aprèla virgule

spoque

Hello toujour pas trouvé une solution pour ma requete j'aimerais deux chiffres après la virgule.

Cordialement

select sum(compte) from (SELECT (COUNT (ID)*10) as compte FROM Users WHERE Name LIKE '%' AND ValidTill > #2005/01/01# AND ValidTill < #2005/12/31# AND TimeCredit LIKE '86%' UNION SELECT (COUNT(ID) * 4.50) as compte FROM Users WHERE Name LIKE '%' AND ValidTill > #2005/01/01# AND ValidTill < #2005/12/31# AND TimeCredit LIKE '36%' ))

on ma proposé cela mais sa ne fonctionne pas !!!
peut-être que je le place mal dans la requete?

select sum(compte) *1.076 from ...
vendredi 18 février 2005 à 13:49:41 | Re : deux chiffre aprèla virgule

moustachu

Membre Club
Essaye :

Select ROUND( sum(compte), 2)

++
Moustachu
vendredi 18 février 2005 à 19:37:10 | Re : deux chiffre aprèla virgule

spoque

Salut,

Non toujour pas

vendredi 18 février 2005 à 20:22:23 | Re : deux chiffre aprèla virgule

fabrice69

Administrateur CodeS-SourceS
Il faut essayer la conversion en type decimal avec 2 chiffre après la virgule.
Le round fait un arrondi ce qui n'est sans doute pas ton besoin

Il faut donc essayer en un

CONVERT( Sum(xxxx), decimal(10,2))

Le 10 correspond au nombre max de chiffre avant la virgule
Le 2 est le nombre max de chiffres après la virgule.


Romelard Fabrice (Alias F___)
vendredi 18 février 2005 à 20:23:26 | Re : deux chiffre aprèla virgule

fabrice69

Administrateur CodeS-SourceS
Ci joint aide MSDN :

----

Conversion des données numériques et décimales

Pour les types de données decimal et numeric, Microsoft® SQL Server™ considère chaque combinaison de précision et d'échelle comme un type de données différent. Par exemple, decimal(5,5) et decimal(5,0) sont considérés comme des types de données différents.

Dans les instructions Transact-SQL, une constante avec une virgule est automatiquement convertie en valeur de donnée numeric, en utilisant la précision et l'échelle requise minimale. Par exemple, la constante 12,345 est convertie en valeur numeric avec une précision de 5 et une échelle de 3.

La conversion de decimal ou numeric en float ou real peut engendrer une certaine perte de précision. La conversion de int, smallint, tinyint, float, real, money ou smallmoney en decimal ou numeric peut provoquer un dépassement de capacité.

Par défaut, SQL Server utilise les arrondis lorsqu'il convertit un nombre en valeur decimal ou numeric avec une précision et une échelle plus faibles. Toutefois, si l'option SET ARITHABORT est sur ON, SQL Server déclenche une erreur lors du dépassement de capacité. Perdre uniquement la précision et l'échelle ne suffit pas à engendrer une erreur.

----

Romelard Fabrice (Alias F___)
vendredi 18 février 2005 à 20:27:49 | Re : deux chiffre aprèla virgule

fabrice69

Administrateur CodeS-SourceS
Je retire ce que j'ai dit pour le premier chiffre, il s'agit de la précision voulue et non du nombre de chiffre avant la virgule (chuis fatigué moi ;) )
cf aide msdn :

----

Précision, échelle et longueur

La précision est le nombre de chiffres qui composent un nombre. L'échelle est le nombre de chiffres à droite du point décimal (notre virgule) dans un nombre. Par exemple, le nombre 123,45 a une précision de 5 et une échelle de 2.

La précision maximum par défaut des types de données numeric et decimal est 38. Dans les versions précédentes de SQL Server, la valeur maximum par défaut était de 28.

La longueur pour un type de données numérique est le nombre d'octets utilisés pour stocker le nombre. La longueur d'une chaîne de caractères ou d'un type de données Unicode est le nombre de caractères. La longueur des types de données binary, varbinary et image est le nombre d'octets. Par exemple, un type de données int peut contenir 10 chiffres, il est stocké sur 4 octets et il n'accepte pas le point décimal. Le type de données int a une précision de 10, une longueur de 4, et une échelle de 0.

Lors de la concaténation de deux expressions char, varchar, binary ou varbinary, la longueur de l'expression obtenue est la somme des longueurs des deux expressions sources ou 8000 caractères, en fonction de la valeur la moins élevée.

Lors de la concaténation de deux expressions de type nchar ou nvarchar, la longueur de l'expression obtenue est la somme des longueurs des deux expressions sources ou 4000 caractères, en fonction de la valeur la moins élevée.

La précision et l'échelle des types de données numériques à part decimal sont fixes. Si un opérateur arithmétique se rapporte à deux expressions du même type, le résultat est également du même type avec la précision et l'échelle définies pour ce type. Si un opérateur se rapporte à deux expressions de types de données numériques différents, les règles de priorité des types de données déterminent le type du résultat. Le résultat a la précision et l'échelle correspondant à son type de données.

Le tableau suivant détaille le calcul de la précision et de l'échelle du résultat d'une opération lorsque celui-ci est de type decimal. Le résultat est de type decimal si :

  • Les deux expressions sont de type decimal.

  • une expression est de type decimal et l'autre est d'un type de degré de priorité moins élevé.

Les opérandes sont notés e1 et e2 (expressions) avec respectivement, les précisions p1 et p2 et les échelles s1et s2. La précision et l'échelle d'une expression d'un autre type que decimal sont celles définies pour cet autre type.

Opération Précision du résultat Échelle du résultat *
e1 + e2 max(s1, s2) + max(p1-s1, p2-s2) + 1 max(s1, s2)
e1 - e2 max(s1, s2) + max(p1-s1, p2-s2) max(s1, s2)
e1 * e2 p1 + p2 + 1 s1 + s2
e1 / e2 p1 - s1 + s2 + max(6, s1 + p2 + 1) max(6, s1 + p2 + 1)

* La précision et l'échelle du résultat ne peuvent pas dépasser 38. Si la précision du résultat dépasse 38, l'échelle correspondante est diminuée pour empêcher la troncature de la partie intégrale du résultat.

----


Romelard Fabrice (Alias F___)
samedi 19 février 2005 à 14:42:20 | Re : deux chiffre aprèla virgule

spoque

Hello donc pour toi c'est cela?

(Select CONVERT( Sum(compte), decimal(10,2)) *1.076 from (SELECT (COUNT (ID)*10) as compte FROM Users WHERE Name LIKE '%' AND ValidTill > #2005/01/01# AND ValidTill < #2005/12/31# AND TimeCredit LIKE '86%' UNION SELECT (COUNT(ID) * 4.50) as compte FROM Users WHERE Name LIKE '%' AND ValidTill > #2005/01/01# AND ValidTill < #2005/12/31# AND TimeCredit LIKE '36%' ))

Désolé sa ne fonctionne toujour pas!!!

c'est peut-être à cause de sa?

while( odbc_fetch_row( $valeur ) ) //tant que c pas la fin de la table
{
echo odbc_result( $valeur, 1 )."&nbsp;.-Frs (HT)<br>";
}
odbc_close( $cnx); // ferme la connection

lundi 21 février 2005 à 11:29:59 | Re : deux chiffre aprèla virgule

fabrice69

Administrateur CodeS-SourceS
Il faut tester la requette dans Query Analyser avant de l'utiliser dans ton code.

Romelard Fabrice (Alias F___)


Cette discussion est classée dans : and, from, compte, virgule, validtill


Répondre à ce message

Sujets en rapport avec ce message

Jointure externe sur la même table !! [ par tequila1 ] BonjourJe dois effectuer une requête avec jointure externe, mais sur la même table.Voici l' exemple :select    EXTRACT(YEAR_MONTH FROM a.periode) ,   TVA sur ma requete [ par spoque ] bonjour à tous,comment faire pour rajouter la TVA (7,6%) sur cette requete?Merci d'avance(select sum(compte) from (SELECT (COUNT (ID)*10) as compte FR requete SQL aider mois SVP [ par spoque ] Bonjour Voici mon problème: $valeur= odbc_exec( $cnx, "(SELECT (COUNT (ID)*10) FROM Users WHE Select * from uneProcedureStockee [ par lutin2004 ] Bonjour, je voudrais faire une requête du style Select * from uneProcedureStockee where critere = "ccccc" Qui s'apparenterait en fait à un tri des rés INSERT BULK FROM @VARIABLE [ par SebOfBorg ] Bonjour,J'essai de faire un script qui me permettrait de faire un insert bulk avec une variable.Le probleme est que l'analyseru de requete me sort une Selection de tables [ par Rouk ] Bonjour,je debeloppe en vb.net un datagrid alimente par une base sqlje voudrai faire une selection des tables que j'affiche dans le datagrid.SELECT 2 liens entre 2 tables [ par fstyle ] Bonjour/soirJe suis en train de créer un système pour gérer ma comptabilité ...et je suis devant un problème !Dans mon mld, il y a 2 tables : t_compta Groupement d'enregistrements [ par dp_favresa ] Bonjour, Je dois récupérer des infos venant de plusieures tables, j'utilise la fonction JOIN, cela fonctionne très bien (code ci-dessous) : < comment veifier si un erequette a bien ete prise en compte ? [ par fredericmaill ] salut! j'aimerais savoir si les requettes d'inserton sont correctement appliquer a ma base MySQL/je voudrais savoir quelle fonction pourais me revoyé Suppression de chiffres après la virgule. [ par MureMusc ] Bonjour je cherche à ne garder que deux chiffres apres la virgule. Ma donnée est composée de 6 chiffres apres la virgule, et je dois retourne


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,328 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales