Query con UNION ALL

lunedì 23 ottobre 2006 - 18.41

Emilia Profilo | Newbie

Salve ragazzi ho ancora bisogno di Voi.

Ho la seguente query :

SELECT Sum(Totale.Importo) AS ImportoTotale
FROM [SELECT Importo FROM Ammortamento UNION ALL
SELECT Importo FROM Assicurazione UNION ALL
SELECT Importo FROM Manutenzione AS Totale
WHERE (
((Ammortamento.Data)>=Forms!CalcolaTotaleCosti!DallaData) AND ((Ammortamento.Data)<=Forms!CalcolaTotaleCosti!AllaData)AND
((Assicurazione.Data)>=Forms!CalcolaTotaleCosti!DallaData) AND ((Assicurazione.Data)<=Forms!CalcolaTotaleCosti!AllaData) AND
((Manutenzione.Data)>=Forms!CalcolaTotaleCosti!DallaData) AND ((Manutenzione.Data)<=Forms!CalcolaTotaleCosti!AllaData));



Il problema è che non mi riconosce la Data delle tabelle Ammortamento, Assicurazione e Manutenzione, perchè quando provo ad eseguire la query dalla maschera CalcolaTotaleCosti, mi chiede di inserire Ammortamento.Data, Assicurazione.Data e Manutenzione.Data.

Come posso fare a risolvere questo problema e quindi far in modo che la query riesca a selezionare le Date dalle tre tabelle.

lbenaglia Profilo | Guru

>Come posso fare a risolvere questo problema e quindi far in modo
>che la query riesca a selezionare le Date dalle tre tabelle.

Ciao Emilia,

i filtri devi applicarli in ogni singola query, non alla fine come hai fatto tu:

SELECT SUM(Q.Importo) AS ImportoTotale FROM ( SELECT Importo FROM Ammortamento WHERE Data BETWEEN Forms!CalcolaTotaleCosti!DallaData AND Forms!CalcolaTotaleCosti!AllaData UNION ALL SELECT Importo FROM Assicurazione WHERE Data BETWEEN Forms!CalcolaTotaleCosti!DallaData AND Forms!CalcolaTotaleCosti!AllaData UNION ALL SELECT Importo FROM Manutenzione WHERE Data BETWEEN Forms!CalcolaTotaleCosti!DallaData AND Forms!CalcolaTotaleCosti!AllaData ) AS Q;

Inoltre ho utilizzato l'operatore BETWEEN che considera l'intero intervallo di date (estremi inclusi).

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5