OVH Cloud OVH Cloud

Requête SQL

4 réponses
Avatar
Marianne Novello
Bonjour =E0 tous,
Je suis en train de faire passer une base de donn=E9es=20
Access a SQL. Les tables sont correctes.

Mon probl=E8me, ce sont les requ=EAtes. Ou plut=F4t des=20
fonctions...

Par exemple, dans la suivante, le "FORMAT" me cause=20
probl=E8me. Comment je peux le faire?

SELECT tblBILoper.*, tblBILagent.*, tblBILrmTypeOper.*,=20
[strLettre]+Format([IDoper],'0000') AS Oper
FROM (tblBILagent RIGHT JOIN tblBILoper ON=20
tblBILagent.IDagent =3D tblBILoper.IDagent) INNER JOIN=20
tblBILrmTypeOper ON tblBILoper.IDtypeOper =3D=20
tblBILrmTypeOper.IDtypeOper
WHERE (((tblBILoper.lngNoCourant)=3D0));

Un autre probl=E8me est celui de transfomer mon Type=20
num=E9rique en mon=E9taire..en Access, j'utilise "CCUR"

CCur([Vente]+[TPS]+[TVP]+[TVH]) AS Total

Merci =E0 vous tous... j'attend de vos nouvelles...

Marianne Novello

4 réponses

Avatar
bruno reiter [MVP]
à priori, c'est au client de formatter et pas à SQLServer, mais tu peux faire
qqchose comme ça :
[strLettre]+REPLICATE('0',4-len(IDoper))+CONVERT(VARCHAR(4),[IDoper]) AS Oper

par ailleurs je te déconseille le type monétaire, il vaut mieux utiliser du
décimal :
CONVERT(DECIMAL(9,2),[Vente]+[TPS]+[TVP]+[TVH]) AS total

br

"Marianne Novello" wrote in message
news:00bd01c39274$d14afcc0$
Bonjour à tous,
Je suis en train de faire passer une base de données
Access a SQL. Les tables sont correctes.

Mon problème, ce sont les requêtes. Ou plutôt des
fonctions...

Par exemple, dans la suivante, le "FORMAT" me cause
problème. Comment je peux le faire?

SELECT tblBILoper.*, tblBILagent.*, tblBILrmTypeOper.*,
[strLettre]+Format([IDoper],'0000') AS Oper
FROM (tblBILagent RIGHT JOIN tblBILoper ON
tblBILagent.IDagent = tblBILoper.IDagent) INNER JOIN
tblBILrmTypeOper ON tblBILoper.IDtypeOper tblBILrmTypeOper.IDtypeOper
WHERE (((tblBILoper.lngNoCourant)=0));

Un autre problème est celui de transfomer mon Type
numérique en monétaire..en Access, j'utilise "CCUR"

CCur([Vente]+[TPS]+[TVP]+[TVH]) AS Total

Merci à vous tous... j'attend de vos nouvelles...

Marianne Novello
Avatar
Laurent Moreau
Bonjour a tous,

Petite question pour Bruno:
Pourquoi déconseilles-tu l'utilisation du type Money ?

Merci.


Laurent.





"bruno reiter [MVP]" wrote in message
news:
à priori, c'est au client de formatter et pas à SQLServer, mais tu peux


faire
qqchose comme ça :
[strLettre]+REPLICATE('0',4-len(IDoper))+CONVERT(VARCHAR(4),[IDoper]) AS


Oper

par ailleurs je te déconseille le type monétaire, il vaut mieux utiliser


du
décimal :
CONVERT(DECIMAL(9,2),[Vente]+[TPS]+[TVP]+[TVH]) AS total

br

"Marianne Novello" wrote in message
news:00bd01c39274$d14afcc0$
Bonjour à tous,
Je suis en train de faire passer une base de données
Access a SQL. Les tables sont correctes.

Mon problème, ce sont les requêtes. Ou plutôt des
fonctions...

Par exemple, dans la suivante, le "FORMAT" me cause
problème. Comment je peux le faire?

SELECT tblBILoper.*, tblBILagent.*, tblBILrmTypeOper.*,
[strLettre]+Format([IDoper],'0000') AS Oper
FROM (tblBILagent RIGHT JOIN tblBILoper ON
tblBILagent.IDagent = tblBILoper.IDagent) INNER JOIN
tblBILrmTypeOper ON tblBILoper.IDtypeOper > tblBILrmTypeOper.IDtypeOper
WHERE (((tblBILoper.lngNoCourant)=0));

Un autre problème est celui de transfomer mon Type
numérique en monétaire..en Access, j'utilise "CCUR"

CCur([Vente]+[TPS]+[TVP]+[TVH]) AS Total

Merci à vous tous... j'attend de vos nouvelles...

Marianne Novello




Avatar
bruno reiter [MVP]
parce qu'il stocke 4 décimales ce qui presque toujours trop ou trop peu pour les
calculs.
de plus le seul avantage serait un affichage préformaté en fonction des
paramètres régionaux, ce qui est intéressant pour une base access locale avec
peu d'utilisateurs, mais qui devient un inconvénient quand on a des utilisateurs
avec des paramètres régionaux différents (imagines qu'un utilisateur voit un CA
de 1.000,00 euros l'autre le même CA de 1,000.00 yens)

br

"Laurent Moreau" wrote in message
news:bmj550$le$
Bonjour a tous,

Petite question pour Bruno:
Pourquoi déconseilles-tu l'utilisation du type Money ?

Merci.


Laurent.





"bruno reiter [MVP]" wrote in message
news:
> à priori, c'est au client de formatter et pas à SQLServer, mais tu peux
faire
> qqchose comme ça :
> [strLettre]+REPLICATE('0',4-len(IDoper))+CONVERT(VARCHAR(4),[IDoper]) AS
Oper
>
> par ailleurs je te déconseille le type monétaire, il vaut mieux utiliser
du
> décimal :
> CONVERT(DECIMAL(9,2),[Vente]+[TPS]+[TVP]+[TVH]) AS total
>
> br
>
> "Marianne Novello" wrote in message
> news:00bd01c39274$d14afcc0$
> Bonjour à tous,
> Je suis en train de faire passer une base de données
> Access a SQL. Les tables sont correctes.
>
> Mon problème, ce sont les requêtes. Ou plutôt des
> fonctions...
>
> Par exemple, dans la suivante, le "FORMAT" me cause
> problème. Comment je peux le faire?
>
> SELECT tblBILoper.*, tblBILagent.*, tblBILrmTypeOper.*,
> [strLettre]+Format([IDoper],'0000') AS Oper
> FROM (tblBILagent RIGHT JOIN tblBILoper ON
> tblBILagent.IDagent = tblBILoper.IDagent) INNER JOIN
> tblBILrmTypeOper ON tblBILoper.IDtypeOper > > tblBILrmTypeOper.IDtypeOper
> WHERE (((tblBILoper.lngNoCourant)=0));
>
> Un autre problème est celui de transfomer mon Type
> numérique en monétaire..en Access, j'utilise "CCUR"
>
> CCur([Vente]+[TPS]+[TVP]+[TVH]) AS Total
>
> Merci à vous tous... j'attend de vos nouvelles...
>
> Marianne Novello
>
>




Avatar
Laurent Moreau
D'expérience, je suis tout a fait d'accord avec tes arguments, surtout:
4 décimales ce qui presque toujours trop ou trop peu

Merci.

Laurent.


"bruno reiter [MVP]" wrote in message
news:
parce qu'il stocke 4 décimales ce qui presque toujours trop ou trop peu


pour les
calculs.
de plus le seul avantage serait un affichage préformaté en fonction des
paramètres régionaux, ce qui est intéressant pour une base access locale


avec
peu d'utilisateurs, mais qui devient un inconvénient quand on a des


utilisateurs
avec des paramètres régionaux différents (imagines qu'un utilisateur voit


un CA
de 1.000,00 euros l'autre le même CA de 1,000.00 yens)

br

"Laurent Moreau" wrote in message
news:bmj550$le$
> Bonjour a tous,
>
> Petite question pour Bruno:
> Pourquoi déconseilles-tu l'utilisation du type Money ?
>
> Merci.
>
>
> Laurent.
>
>
>
>
>
> "bruno reiter [MVP]" wrote in message
> news:
> > à priori, c'est au client de formatter et pas à SQLServer, mais tu


peux
> faire
> > qqchose comme ça :
> > [strLettre]+REPLICATE('0',4-len(IDoper))+CONVERT(VARCHAR(4),[IDoper])


AS
> Oper
> >
> > par ailleurs je te déconseille le type monétaire, il vaut mieux


utiliser
> du
> > décimal :
> > CONVERT(DECIMAL(9,2),[Vente]+[TPS]+[TVP]+[TVH]) AS total
> >
> > br
> >
> > "Marianne Novello" wrote in message
> > news:00bd01c39274$d14afcc0$
> > Bonjour à tous,
> > Je suis en train de faire passer une base de données
> > Access a SQL. Les tables sont correctes.
> >
> > Mon problème, ce sont les requêtes. Ou plutôt des
> > fonctions...
> >
> > Par exemple, dans la suivante, le "FORMAT" me cause
> > problème. Comment je peux le faire?
> >
> > SELECT tblBILoper.*, tblBILagent.*, tblBILrmTypeOper.*,
> > [strLettre]+Format([IDoper],'0000') AS Oper
> > FROM (tblBILagent RIGHT JOIN tblBILoper ON
> > tblBILagent.IDagent = tblBILoper.IDagent) INNER JOIN
> > tblBILrmTypeOper ON tblBILoper.IDtypeOper > > > tblBILrmTypeOper.IDtypeOper
> > WHERE (((tblBILoper.lngNoCourant)=0));
> >
> > Un autre problème est celui de transfomer mon Type
> > numérique en monétaire..en Access, j'utilise "CCUR"
> >
> > CCur([Vente]+[TPS]+[TVP]+[TVH]) AS Total
> >
> > Merci à vous tous... j'attend de vos nouvelles...
> >
> > Marianne Novello
> >
> >
>
>