Newsgroup: it.comp.appl.access
Titolo: query di sottrazione

mi spiego
dovrei sottrarre la somma di tutti i campi di una tabellaA alla somma di 
tutti i campi della tabellaB
 ho provato in questo modo
SELECT Sum(Uscite.Costo))-(Sum(Clienti.Totale)
FROM Uscite, Clienti;
ma i risultati sono letteralmente sballati!
qualcuno puň aiutarmi grazie :) 

 ha scritto nel messaggio
news:44abd9f2$0$3120$4faf...@reader1.news.tin.it...

Ciao free,
i risultati sono sballati perchč in quel modo fai il prodotto cartesiano
delle due tabelle.
Uno dei modi per risolvere:
----
Select Costo-Totale
From
(Select Top 1
        (Select Sum(Costo) From Uscite) AS Costo,
        (Select Sum(Totale) From Clienti) AS Totale
 From msysobjects) AS DrvTbl
----
Ciao
-- 
Giorgio Rancati
[Office Access MVP]

 ha scritto nel messaggio
news:44abd9f2$0$3120$4faf...@reader1.news.tin.it...

Ciao Free,
SELECT  (Select Sum(Costo) FROM USCITE) As UsciteTot,
 ( Select Sum(Totale) FROM Clienti ) as TotClienti
FROM Clienti
WHERE IDCliente=XXX
La condizione Where serve ad avere come risultato una sola riga altrimenti
senza condizione avresti tante righe quante sono i clienti, ovviamnete la
modificherai in funzione dei tuoi dati  al posto di IDCliente metterai il
tuo campo univoco e al posto di XXX un valore opportuno
-- 
Cinzia
---------------------------------------
|  
http://www.riolab.org
  |
--------------------------------------->

 ha scritto nel 
messaggio news:44abe95c$0$990$5fc...@news.tiscali.it...


> qualcuno può aiutarmi grazie :)


 Grazie mille!
questo mi sembra carino per iniziare
----
SQL Tutorial
http://www.w3schools.com/sql/default.asp


 ----
ovviamente si può semplificare anche così
----
Select Top 1
         (Select Sum(Costo) From Uscite) -
         (Select Sum(Totale) From Clienti) AS Risultato
From msysobjects


 Gennaro
Ciao Gennaro; giusto per informarti che dovresti scrivere la tua risposta alla fine del testo del messaggio precedete (premi 
CTRL-END), come sto facendo io; grazie...
Vedi: 
www.sitocomune.com
 - Sezione ICAA
Ciao.
-- 
Sergio MAZZA 

 Sergio MAZZA servito  :) 

 ha scritto nel 
messaggio news:44abef05$0$1000$5fc...@news.tiscali.it...

Giorgio grazie pr il link, ottimo direi. 

 Gennaro
Ciao gennaro,
oops,  non avevo visto la risposta di Giorgio, comunque le due soluzione mi
pare siano  equivalenti.
L'unica differenza  che vedo  è che Giorgio ha usato una tabella di sistema
e la SELECT TOP 1 per ottenere una sola riga,  io per una convinzione "a
pelle" non suffragata da prove particolari mi ero convinta che una select
con una condizione Where puntuale fosse più "performante" di una Select TOP
1   ovviamente a parità di tabella, ma mi sa che simo nell'ordine dei
millisecondi  ...
 Se qualcuno ha voglia di fare qualche test o li ha già fatti e ci dice il
risultato...
(ah mi ero dimenticata anche di mettere la differenza tra i due totali)


 risultato...
ma, io non ho mai fatto prove, uso la tabella msysobjects perchè sono sicuro
che ha almeno 1 record e difficilmente supera il migliaio.
In Access la select Top 1 senza order by rende il primo record che è stato
inserito in tabella, quindi in ordine di bookmark.
La where può essere altrettanto performante se esegue il filtro su un campo
associato a chiave primaria, e giustamente tu hai indicato un Id, al
contrario se il campo non è associato a nessuna chiave allora deve leggersi
tutta la tabella.
per concludere, a parte la sicurezza di avere almeno un record non vedo
differenze
:-)


 ha scritto nel messaggio 
news:44ac08dd$0$991$5fc...@news.tiscali.it...

Cinzia ho provato e va benissimo anche la tua soluzione, ma la differenza 
come viene fatta qui!? ora sono curioso di capire poichè la tua soluzione 
per me è più comprensibile non essendoci la tabella di sistema (che non  so 
che sia ..:-)  ), ma la cosa più importante è, che dovendo sfruttare poi 
queste query in FrontPage, che tra l'altro mi sta dando un casino di 
problemi, lui non riconosce affatto msysobjects ed è un macello.
Vabbè mi fermo altrimenti subito qualcuno mi dice che questo non è 
l'ambiente adatto x FP :)
grazie ancora...