Newsgroup: it.comp.appl.access
Titolo: Errore di sintassi nella proposizione From di un'istruzione SQL

Ciao a tutti, ho un problema nell'esecuzione di una query che vi vado a
spiegare, sperando di essere sufficientemente chiaro.
In un database, ho tre tabelle cosě strutturate:
Tab.1: Fatture - Campo1 DataFattura (campo data/ora)
                         Campo2 TotaleFattura (campo valuta)
Tab.2: Corrispettivi - Campo1 Mese (campo data/ora formato mmmm aaaa
                                    Campo2 Totale (campo valuta)
Tab.3: Spese - Campo1 DataSpesa (campo data/ora)
                         Campo2 TotaleSpesa (campo valuta)
Per le tabelle "Fatture" e "Spese", ho realizzato due Query, le quali mi
restituissero ognuna il totale mensile rispettivamente delle fatture e delle
spese, con la seguente istruzione SQL
SELECT DISTINCTROW Format$([Spese].[DataSpesa],'mmmm yyyy') AS Mese,
Sum([Spese].TotaleSpesa) AS [Totale mensile]
FROM [Spese]
GROUP BY Format$([Spese].[DataSpesa],'mmmm yyyy'),
Year([Spese].[DataSpesa])*12+DatePart('m',[Spese].[DataSpesa])-1
ORDER BY Year([Spese].[DataSpesa])*12+DatePart('m',[Spese].[DataSpesa])-1;
Chiaramente ho poi fatto la stessa istruzione per ottenere il totale mensile
fatture
Adesso mi ritrovo con queste due query che ho chiamato "TotaliSpeseMensili"
e "TotaliMensiliFatture", e con la tabella "Corrispettivi" precedentemente
descritta.
Ho bisogno di ottenere un'ultima query che mi vada a visualizzare i seguenti
campi:
campo1: Mese
campo2: TotaliMensiliFatture
campo3: TotaleCorrispettivi
campo4: Totale entrate, campo calcolato dato da TotaliMensiliFatture+
TotaleCorrispettivi
campo5: TotaliSpeseMensili (Uscite mensili)
campo6: Saldo mensile, campo calcolato dato da Totale entrate- Uscite
mensili
Premetto che sono piuttosto inesperto nell'uso del linguaggio SQL, ma
comunque ho provato ad ottenere il risultato da me voluto con la seguente
istruzione:
SELECT Format$([TotaliSpeseMensili].[Mese],'mmmm yyyy') AS Mese,
[TotaliMensiliFatture].[Totale mensile] AS [Entrate mensili],
[Corrispettivi].[Totale] AS [Corrispettivi], [Entrate
mensili]+[Corrispettivi] AS [Totale entrate], [TotaliSpeseMensili].[Totale
mensile] AS [Uscite mensili], [Totale entrate]-[Uscite mensili] AS [Saldo
mensile]
FROM TotaliMensiliFatture INNER JOIN Corrispettivi   JOIN TotaliSpeseMensili
ON
[TotaliMensiliFatture].[Mese]=[Corrispettivi].[Mese]=[TotaliSpeseMensili].[M
ese]
ORDER BY
Year([TotaliSpeseMensili].[Mese])*12+DatePart('m',[TotaliSpeseMensili].[Mese
])-1;
Mi da il seguente messaggio di errore: Errore di sintassi nella proposizione
FROM
Non riesco ad uscirne in nessun modo. Vi sarei molto grato se qualcuno
potesse aiutarmi.

 ha scritto nel messaggio
news:raEea.30326$%p6.20...@news.edisontel.com...

Prova con:
FROM (TotaliMensiliFatture INNER JOIN Corrispettivi ON
[TotaliMensiliFatture].[Mese]=[Corrispettivi].[Mese]) INNER JOIN
TotaliSpeseMensili ON [TotaliMensiliFatture].[Mese] =
[TotaliSpeseMensili].[Mese]
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------

 Roberto
Grazie innanzitutto per la sollecita risposta. Ho provato ma mi da il
seguente errore:
Tipo non corrispondente nell'espressione JOIN. (3615).
Un'espressione JOIN sta tentando di creare un join tra due tabelle su campi
con tipi di dati incompatibili
Immagino che il campo incompatibile a cui si riferisce sia il mese, ma non
capisco il motivo, in quanto si tratta per tutte le tabelle di campi
data/ora.
Posso solo pensare che le query "TotaliMensiliFatture" e
"TotaliSpeseMensili", prese rispettivamente dalle tabelle "Fatture" e
"Spese", sono Query di riepilogo eseguite con la creazione guidata, e non
vorrei che esistesse qualche problema nel riconoscimento del dato relativo
al campo "Mese", essendo che il campo "Mese" della tabella "Corrispettivi",
è preso direttamente dalla tabella.
Sono considerazioni fatte proprio perchè non so più che pesci prendere,
quindi forse non dettate dalla razionalità.


 data/ora.
E' giusto che Access ti dia errore.
Nella tabella Corrispettivi il campo Mese č di tipo Data/ora, ma nelle
queries  TotaliMensiliFatture e TotaliSpeseMensili il campo Mese é di tipo
Testo.
[CUT]
Prova cosě:
FROM (TotaliMensiliFatture INNER JOIN Corrispettivi ON
[TotaliMensiliFatture].[Mese] = Format([Corrispettivi].[Mese], 'mmmm yyyy'))
INNER JOIN TotaliSpeseMensili ON
[TotaliMensiliFatture].[Mese] = [TotaliSpeseMensili].[Mese]
--
Roberto
---------------------------------------------


 ha scritto nel messaggio
news:17Hea.33741$7y3.1...@twister1.libero.it...

Perfetto, grazie di cuore. Si impara sempre qualcosa da voi



Questa č la nuova query (non so come si chiama), e contiene un altro campo,
che perņ si chiama ancora Mese.
Secondo me i nomi di questi due campi vanno in conflitto. Se non hai gią
risolto, io proverei, nell'ultima query, a scrivere:
SELECT Format$([TotaliSpeseMensili].[Mese],'mmmm yyyy') AS Mese1,
....
Spero che ti sia d'aiuto.
--------------------------------
Inviato via 
http://usenet.libero.it