Newsgroup: it.comp.appl.access
Titolo: Upsize MDB in ADP

ciao a tutti, ho provato ad effettuare un upsize del mio database per creare
un file di progetto di Access che devo in stallare in una piccola rete, i
software presenti sono Access2000 ed ho installato MSDE  (non avendo SQL
Server), il tutto è andato a buon fine tranne che per alcune query dove
all'interno erano presenti delle espressioni. Siccome non sono molto ferrato
in SQL volevo sapere la giusta sintassi nella conversione da Access a SQL
Server delle query (e possibilmente dove posso reperire informazioni in
merito), posto il codice presente in Access:
SELECT tblDettagliLavori.IDTributi,
tblDettagliLavori.IDAutorizzazione,
tblDettagliLavori.Quantità,
CCur([tblDettagliLavori]![Quantità]*[tblTributi]![Prezzo])*(1+[tblDettagliLa
vori]![IvaTassa]/100) AS ImportoTassa,
CCur([tblDettagliLavori]![Quantità]*[tblTributi]![PrezzoTributo])*(1+[tblDet
tagliLavori]![IvaTributo]/100) AS ImportoTributo,
[ImportoTassa]+[ImportoTributo] AS Totale
FROM tblTributi INNER JOIN tblDettagliLavori ON tblTributi.IDTributi =
tblDettagliLavori.IDTributi;
e quello che ho cercato di mdificare in SQL Server:
Alter Procedure qryCopiaImportoTributo
As
SELECT tblDettagliLavori.IDTributi,
tblDettagliLavori.IDAutorizzazione,
tblDettagliLavori.Quantità,
 CONVERT(money,
(tblDettagliLavori.Quantità*tblTributi.Prezzo)*(1+tblDettagliLavori.IvaTassa
/100)) As ImportoTassa,
CONVERT(money,(tblDettagliLavori.Quantità*tblTributi.PrezzoTributo)*(1+tblDe
ttagliLavori.IvaTributo/100)) AS ImportoTributo,
(ImportoTassa+ImportoTributo) AS Totale
FROM tblTributi INNER JOIN tblDettagliLavori ON tblTributi.IDTributi =
tblDettagliLavori.IDTributi;
spero che qualcuno ci azzecchi....
a presto
Tommy

 ha scritto nel messaggio
news:UHLXa.226867$lK4.6...@twister1.libero.it...

Ciao Tommy
Il tipo di dato Money equivale a Currency di Access e come tale ha 4
decimali (anche se ne vengono visualizzati 2).
Non entro nel merito del calcolo da te postato in quanto l'iva va calcolata
sommando gli imponibili raggruppati per aliquota e solo dopo si applica
l'aliquota e si arrotonda il tutto secondo le regole disposte dal comitato
per l'Euro.
Comunque qui puoi scaricare il manuale in linea per SqlServer 2000 vqlido
anche per MSDE2000
http://www.microsoft.com/italy/sql/techinfo/productdoc/2000/books.asp
O per SqlServer 7.0 valido anche per MSDE 1.0
http://www.microsoft.com/sql/techinfo/productdoc/70/books.asp
Ciao Giorgio

 ha scritto nel messaggio
news:bgo52b$v7$2...@lacerta.tiscalinet.it...

Dear Mr Prx,
visto che ci siamo sai dove posso scaricare un po di e-book anche in inglese
del tipo "Performin Tuning..." o giù di lì...  o altre...
Magari se i .chm fosse stampabile con tanto di indice e sommario (... 'na
stampa enciclopedica...)
Ti ringrazio.
Daniele

 ha scritto nel messaggio
news:YyNXa.226941$Ny5.6...@twister2.libero.it...

Ciao Daniele
Ho sempre trovato le risposte negli help in linea che nel caso di SqlServer
sono molto approfonditi e pieni di esempi,  quindi non saprei proprio cosa
indicarti. :(
Ciao Giorgio.

 ha scritto nel messaggio
news:bgo52b$v7$2...@lacerta.tiscalinet.it...

Hai ragione, però a me interessava sapere se l'esempio di codice riferito
alla stored procedure che ho postato è giusto come sintassi,soprattutto
nella parte in cui vado ad aggiungere le  colonne che chiamo ImportoTassa e
ImportoTributo le quali contengono delle  espressione,  visto che quando
provo a salvare la stored procedure mi da il seguente errore : invalid
column name: Importo tassa e invalid column name: Importo tributo.
Per quanto riguarda il manuale in linea ti ringrazio per la dritta e vado a
scaricarlo.
Ciao tommy


Ciao tommy,
Non vedo alcun errore nella tua query, a meno che non hai uno spazio nel
nome che attribuisci al campo calcolato, (Importo tassa  invece di
Importotassa ) . Nel caso di nome con spazio devi racchiuderlo tra parentesi
quadre [Importo Tassa]. Ma almeno in questo non ci sono differenze tra
Access e SqlServer.
Ciao Giorgio.


No, non ci sono spazi nel nome, ma l'errore me lo dà sempre, boh provo
qualche altro tentativo.
Grazie per la pazienza.

 ha scritto nel messaggio
news:_vIYa.232694$lK4.6...@twister1.libero.it...

Ciao tommy,
snellendo la tua query  ho trovato l'errore o meglio ciò che Sql Server
interpreta come errore
SELECT
   D.IDTributi,
   D.IDAutorizzazione,
   D.Quantità,
  CONVERT(money,(D.Quantità*T.Prezzo)*(1+D.IvaTassa/100)) As ImportoTassa,
  CONVERT(money,(D.Quantità*T.PrezzoTributo)*(1+D.IvaTributo/100)) AS
ImportoTributo,
  (ImportoTassa+ImportoTributo) AS Totale  <<<-------- *** Errore ***
  FROM tblTributi T INNER JOIN tblDettagliLavori D
              ON T.IDTributi =D.IDTributi
In  SqlServer non puoi riferirti a un alias per fare i calcoli (è una
compdità di access a cui dobbiamo fare a meno)
Gli Alias dei campi possono essere utilizzati solo nella ORDER BY (cosa che
con access non è possibile fare)
Quindi devi modificare la tua query in questo modo
SELECT
   D.IDTributi,
   D.IDAutorizzazione,
   D.Quantità,
  CONVERT(money,(D.Quantità*T.Prezzo)*(1+D.IvaTassa/100)) As ImportoTassa,
  CONVERT(money,(D.Quantità*T.PrezzoTributo)*(1+D.IvaTributo/100)) AS
ImportoTributo,
  CONVERT(money,(D.Quantità*T.Prezzo)*(1+D.IvaTassa/100)) +
  CONVERT(money,(D.Quantità*T.PrezzoTributo)*(1+D.IvaTributo/100)) Totale,
  FROM tblTributi T INNER JOIN tblDettagliLavori D
              ON T.IDTributi =D.IDTributi
Ciao Giorgio.

 ha scritto nel messaggio
news:bgvnla$t0r$1...@lacerta.tiscalinet.it...

grazie tante
ciao Tommy