Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Query: dimensione dei campi di una query -> impostare le posizioni decimali nella query

590 views
Skip to first unread message

esseAemme

unread,
Nov 21, 2007, 9:54:47 AM11/21/07
to
Ciao a tutto NG !!!!!

Ho diverse query, alcune di creazione tabella altre di aggiornamento.
Dovrei riuscire a dirgli che la dimensione del campo di quella query è
pari a 3 posizioni decimali dopo la virgola. E' possibile? -> Tagliare
proprio il valore?

Ho visto che esiste in struttura query, facendo tasto destro
proprietà, formato e posizioni decimali. Ma purtroppo mi visualizza i
campi con le 14 posizioni decimali che io ho all'inizio.

SELECT
Temp_DistCalcoloCostiAlVolo.Temp_DistCalcoloCostiAlVolo_CostoMateriePrime,
Temp_DistCalcoloCostiAlVolo.dist_cstgenacq,
[Temp_DistCalcoloCostiAlVolo_CostoMateriePrime]*[dist_cstgenacq] AS
Valore_CostiGeneraliAcquisti,
Temp_DistCalcoloCostiAlVolo.Temp_DistCalcoloCostiAlVolo_CostoLavorazioni,
Temp_DistCalcoloCostiAlVolo.dist_id,
Temp_DistCalcoloCostiAlVolo.Temp_DistCalcoloCostiAlVolo_CostiVari,
([Valore_CostiGeneraliAcquisti]+
[Temp_DistCalcoloCostiAlVolo_CostoMateriePrime]+
[Temp_DistCalcoloCostiAlVolo_CostoLavorazioni]+
[Temp_DistCalcoloCostiAlVolo_CostiVari]) AS Base_CalcoloScarto
FROM Temp_DistCalcoloCostiAlVolo;

Grazie x l'aiuto,

Samantha

ALESSANDRO Baraldi

unread,
Nov 21, 2007, 2:36:57 PM11/21/07
to

Grazie x l'aiuto,

Samantha


Devi TRONCARE o arrotondare...?

Nel 1° caso usa FORMAT nel campo in questione(dall'Help ti mostra come
impostare 3 Decimali)
Nel 2° caso leggi questo :
www.donkarl.com/it?FAQ2.1

ed usa la funzione di Karl nella Query.

SELECT fctRound([NomeCampo],3) As NomeCampoArrotondato
FROM T1

--
@Alex (Alessandro Baraldi)
---------------------------------------------------------------------------
http://www.sitocomune.com/
http://www.alessandrobaraldi.it
---------------------------------------------------------------------------


esseAemme

unread,
Nov 22, 2007, 4:14:20 AM11/22/07
to

Devo troncare!
Grazie Alessandro e buon lavoro
Samantha

esseAemme

unread,
Nov 23, 2007, 3:36:25 AM11/23/07
to

Ciao Alessandro,

la query è questa, ma mi da errore

SELECT Temp_CostiProdotti.dist_id,
Temp_CostiProdotti.CostoMateriePrime,
Temp_CostiProdotti.dist_cstgenacq,
([CostoMateriePrime]*[dist_cstgenacq]) AS CostiGenAcq,
Format([CostiGenAcq],"#,##0.000") AS CostiGeneraliAcquisti,
Temp_CostiProdotti.CostoLavorazioni, Temp_CostiProdotti.CostiVari,
([costomaterieprime]+[CostiGeneraliAcquisti]) AS Sub_CGA,
Format([Sub_CGA],"#,##0.000") AS Sub_CostiGeneraliAcquisti,
([Sub_CostiGeneraliAcquisti]+[CostoLavorazioni]+[CostiVari]) AS
Base_CS, Format([base_cs],"#,##0.000") AS Base_CalcoloScarto,
Temp_CostiProdotti.dist_scarto, ([Base_calcoloscarto]*[dist_scarto])
AS CS, Format([cs],"#,##0.000") AS CostoScarto,
Temp_CostiProdotti.dist_trasp, ([Base_CS]+[Costoscarto]+[dist_trasp])
AS Base_CM, Format([Base_CM],"#,##0.000") AS Base_CalcoloMargine,
Temp_CostiProdotti.dist_marg, ([Base_calcolomargine]*[dist_marg]) AS
MargV, Format([MargV],"#,##0.000") AS MargineVolo,
([Base_calcolomargine]+[marginevolo]) AS Sub_MV,
Format([Sub_MV],"#,##0.000") AS Sub_MargineVolo,
Temp_CostiProdotti.dist_prov, ([sub_MV]*[dist_prov]) AS
Provvigioni_Volo, [provvigioni_volo]+[sub_marginevolo] AS Prezzo_Volo,
Temp_CostiProdotti.dist_valmargs, ([base_calcolomargine]+
[dist_valmargs]) AS Sub_MS, Format([Sub_MS],"#,##0.000") AS
Sub_MargSalvato, ([sub_margsalvato]*[dist_prov]) AS
Provvigioni_salvato, ([sub_margsalvato]+[provvigioni_salvato]) AS
Prezzo_salvamargine INTO Temp_DistintaValori
FROM Temp_CostiProdotti;

All'altezza di Sub_MV il valore è Sub_MV
3,4481,015

I valori precedenti sono:
Base calcolo margine 3,448
dist_marg 29,44% oppure 0,2944
(Per dist_marg ho provato a cambiare nelle proprietà anche
percentuale, ma il problema non cambia)
MargV 1,0150912225
MargV: ([Base_calcolomargine]*[dist_marg])
MargineVolo 1,015
MargineVolo: Format([MargV];"#.##0,000")
Sub_MV 3,4481,015
Sub_MV: ([Base_calcolomargine]+[marginevolo])
Sub_MargineVolo 3,4481,015
Sub_MargineVolo: Format([Sub_MV];"#.##0,000")

Perchè il campo SUB_MV mi da questo risultato 3,4481,015 ? che cavolo
vuol dire?

Qualcuno mi può aiutare a capire cosa succede in questa query?

Grazie!
Samantha


esseAemme

unread,
Nov 23, 2007, 3:41:57 AM11/23/07
to

Ora ho capito!!!

IL campo Sub_MV è la concatenazione dei due valori, infatti 3,448 è
base_calcolo margine mentre 1,015 è margine volo, e il campo me li
indica in sequenza
3,4481,015... ma xchè?

Sub_MV: [Base_calcolomargine]+[marginevolo]
non è concatenazione io gli dico di sommare?!????

non capisco perchè faccia così...

esseAemme

unread,
Nov 23, 2007, 3:56:07 AM11/23/07
to

Penso che i due campi formattati vengano interpretati come testo.
Infatti se sommo anziche Base_calcolomargine -> Base_cm (ossia il
campo non formattato) la somma avviene in modo corretto.

uff. come posso fare???

Samantha

esseAemme

unread,
Nov 23, 2007, 4:28:42 AM11/23/07
to

ok

ho capito, una parte...

il format(campo;"#.##0,000") che io utilizzo, mi trasforma il campo da
numerico in testo con tre posizioni decimali, troncando proprio il
resto delle cifre decimali.

Poi però io devo usare quel campo come somma... allora devo
trasformarlo da testo a numerico, con la funzione cdbl perchè tiene
conto dei decimali.

Ma se io anzichè usare all'inizio format(campo;"#.##0,000") usassi
format(cdbl((campo);"0,000") ottengo la troncatura del campo,
lasciandolo in formato numerico?

TEST: Format(CDbl([base_cm]);"0,000")
Sub_MV: ([test]+[marginevolo]) -> risultato è sempre la concatenazione
di stringhe

esseAemme

unread,
Nov 23, 2007, 4:50:22 AM11/23/07
to

ok, alla fine ci sono
arrivata.............................................................................

Base_CM: ([Base_CS]+[Costoscarto]+[dist_trasp])
Base_CalcoloMargine: Format([Base_CM];"#.##0,000")
test: CDbl([Base_calcolomargine])

il campo test è quindi diventato di tipo numerico.

La domanda ora è: posso con il format ottenere la troncatura del campo
a 3 cifre decimali lasciandolo in formato numerico?

Grazie,

Samantha

VT @ Work

unread,
Nov 23, 2007, 5:07:36 AM11/23/07
to
On Fri, 23 Nov 2007 01:50:22 -0800 (PST), esseAemme
<samanth...@gmail.com> wrote:

>(...)
>La domanda ora č: posso con il format ottenere la troncatura del campo


>a 3 cifre decimali lasciandolo in formato numerico?

Non ho letto con attenzione tutte le tue elucubrazioni precedenti,
comunque:
se campo=1234,56789 prova con
Int(campo*1000)/1000

>Grazie,
>
>Samantha
Vincenzo Turturro

Certificato Eucip Core Level
ITA 0000-002299 del 14/05/2007
---------------------------------------------
il sito comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------
risorse Access:
http://www.accessgroup.it
---------------------------------------------
Il sito comune di it.comp.as400
http://www.faq400.com
---------------------------------------------

esseAemme

unread,
Nov 23, 2007, 5:17:50 AM11/23/07
to
On 23 Nov, 11:07, "VT @ Work" <V...@Work.it> wrote:
> On Fri, 23 Nov 2007 01:50:22 -0800 (PST), esseAemme
>
> <samantha.ci...@gmail.com> wrote:
> >(...)
> >La domanda ora è: posso con il format ottenere la troncatura del campo

> >a 3 cifre decimali lasciandolo in formato numerico?
>
> Non ho letto con attenzione tutte le tue elucubrazioni precedenti,
> comunque:
> se campo=1234,56789 prova con
> Int(campo*1000)/1000
>
> >Grazie,
>
> >Samantha
>
> Vincenzo Turturro
>
> Certificato Eucip Core Level
> ITA 0000-002299 del 14/05/2007
> ---------------------------------------------
> il sito comune di it.comp.appl.access:http://www.sitocomune.com
> ---------------------------------------------
> risorse Access:http://www.accessgroup.it
> ---------------------------------------------
> Il sito comune di it.comp.as400http://www.faq400.com
> ---------------------------------------------

:) Ciao Vincenzo :D
come stai?

Io ho trovato questo:
Base_CalcoloScarto: CDbl(Format(([Sub_CostiGeneraliAcquisti]+
[CostoLavorazioni]+[CostiVari]);"0,000"))

(format(campo);"0,000") -> tronca e trasforma in testo
cdbl () -> ritrasforma in numero quanto ho troncato con format

Buon lavoro
Samantha
ho visto che funziona perchè mi crea una tabella, e i campi così
costruiti vengono visti come numerico!!!!

0 new messages